handinger 0.1.0 → 0.3.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 (82) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +35 -0
  3. data/README.md +19 -20
  4. data/SECURITY.md +4 -0
  5. data/lib/handinger/client.rb +21 -1
  6. data/lib/handinger/internal/transport/base_client.rb +1 -3
  7. data/lib/handinger/internal/type/base_model.rb +3 -3
  8. data/lib/handinger/models/create_task.rb +28 -0
  9. data/lib/handinger/models/create_worker.rb +59 -19
  10. data/lib/handinger/models/delete_task_response.rb +16 -0
  11. data/lib/handinger/models/delete_worker_response.rb +16 -0
  12. data/lib/handinger/models/task.rb +119 -0
  13. data/lib/handinger/models/task_create_params.rb +14 -0
  14. data/lib/handinger/models/task_delete_params.rb +20 -0
  15. data/lib/handinger/models/task_retrieve_params.rb +20 -0
  16. data/lib/handinger/models/task_with_turns.rb +113 -0
  17. data/lib/handinger/models/update_worker.rb +71 -0
  18. data/lib/handinger/models/worker.rb +9 -84
  19. data/lib/handinger/models/{worker_stream_updates_params.rb → worker_delete_params.rb} +2 -2
  20. data/lib/handinger/models/worker_retrieve_email_response.rb +10 -1
  21. data/lib/handinger/models/worker_retrieve_params.rb +22 -4
  22. data/lib/handinger/models/worker_template.rb +84 -0
  23. data/lib/handinger/models/{worker_continue_params.rb → worker_update_params.rb} +2 -2
  24. data/lib/handinger/models.rb +23 -5
  25. data/lib/handinger/resources/tasks.rb +98 -0
  26. data/lib/handinger/resources/workers.rb +66 -68
  27. data/lib/handinger/version.rb +1 -1
  28. data/lib/handinger.rb +13 -6
  29. data/rbi/handinger/client.rbi +5 -0
  30. data/rbi/handinger/internal/transport/base_client.rbi +2 -18
  31. data/rbi/handinger/models/create_task.rbi +40 -0
  32. data/rbi/handinger/models/create_worker.rbi +84 -26
  33. data/rbi/handinger/models/delete_task_response.rbi +23 -0
  34. data/rbi/handinger/models/delete_worker_response.rbi +23 -0
  35. data/rbi/handinger/models/task.rbi +160 -0
  36. data/rbi/handinger/models/task_create_params.rbi +27 -0
  37. data/rbi/handinger/models/task_delete_params.rbi +35 -0
  38. data/rbi/handinger/models/task_retrieve_params.rbi +35 -0
  39. data/rbi/handinger/models/task_with_turns.rbi +149 -0
  40. data/rbi/handinger/models/update_worker.rbi +112 -0
  41. data/rbi/handinger/models/worker.rbi +10 -120
  42. data/rbi/handinger/models/{worker_stream_updates_params.rbi → worker_delete_params.rbi} +2 -5
  43. data/rbi/handinger/models/worker_retrieve_email_response.rbi +20 -1
  44. data/rbi/handinger/models/worker_retrieve_params.rbi +40 -6
  45. data/rbi/handinger/models/worker_template.rbi +110 -0
  46. data/rbi/handinger/models/{worker_continue_params.rbi → worker_update_params.rbi} +2 -2
  47. data/rbi/handinger/models.rbi +23 -5
  48. data/rbi/handinger/resources/tasks.rbi +86 -0
  49. data/rbi/handinger/resources/workers.rbi +68 -43
  50. data/sig/handinger/client.rbs +2 -0
  51. data/sig/handinger/models/create_task.rbs +19 -0
  52. data/sig/handinger/models/create_worker.rbs +44 -23
  53. data/sig/handinger/models/delete_task_response.rbs +13 -0
  54. data/sig/handinger/models/delete_worker_response.rbs +13 -0
  55. data/sig/handinger/models/task.rbs +114 -0
  56. data/sig/handinger/models/task_create_params.rbs +15 -0
  57. data/sig/handinger/models/task_delete_params.rbs +23 -0
  58. data/sig/handinger/models/task_retrieve_params.rbs +23 -0
  59. data/sig/handinger/models/task_with_turns.rbs +104 -0
  60. data/sig/handinger/models/update_worker.rbs +61 -0
  61. data/sig/handinger/models/worker.rbs +7 -89
  62. data/sig/handinger/models/{worker_stream_updates_params.rbs → worker_delete_params.rbs} +2 -2
  63. data/sig/handinger/models/worker_retrieve_email_response.rbs +9 -1
  64. data/sig/handinger/models/worker_retrieve_params.rbs +21 -5
  65. data/sig/handinger/models/worker_template.rbs +76 -0
  66. data/sig/handinger/models/{worker_continue_params.rbs → worker_update_params.rbs} +2 -2
  67. data/sig/handinger/models.rbs +23 -5
  68. data/sig/handinger/resources/tasks.rbs +29 -0
  69. data/sig/handinger/resources/workers.rbs +19 -20
  70. metadata +42 -21
  71. data/lib/handinger/internal/stream.rb +0 -29
  72. data/lib/handinger/internal/type/base_stream.rb +0 -83
  73. data/lib/handinger/models/worker_retrieve_file_params.rb +0 -26
  74. data/lib/handinger/models/worker_stream_updates_response.rb +0 -7
  75. data/rbi/handinger/internal/stream.rbi +0 -20
  76. data/rbi/handinger/internal/type/base_stream.rbi +0 -75
  77. data/rbi/handinger/models/worker_retrieve_file_params.rbi +0 -46
  78. data/rbi/handinger/models/worker_stream_updates_response.rbi +0 -7
  79. data/sig/handinger/internal/stream.rbs +0 -9
  80. data/sig/handinger/internal/type/base_stream.rbs +0 -38
  81. data/sig/handinger/models/worker_retrieve_file_params.rbs +0 -28
  82. data/sig/handinger/models/worker_stream_updates_response.rbs +0 -5
@@ -0,0 +1,160 @@
1
+ # typed: strong
2
+
3
+ module Handinger
4
+ module Models
5
+ class Task < Handinger::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias { T.any(Handinger::Task, Handinger::Internal::AnyHash) }
8
+
9
+ sig { returns(String) }
10
+ attr_accessor :id
11
+
12
+ sig { returns(T.nilable(String)) }
13
+ attr_accessor :completed_at
14
+
15
+ sig { returns(String) }
16
+ attr_accessor :created_at
17
+
18
+ sig { returns(T.nilable(String)) }
19
+ attr_accessor :created_by_user_id
20
+
21
+ sig { returns(String) }
22
+ attr_accessor :organization_id
23
+
24
+ sig { returns(Handinger::Task::Status::TaggedSymbol) }
25
+ attr_accessor :status
26
+
27
+ sig { returns(String) }
28
+ attr_accessor :title
29
+
30
+ sig { returns(Handinger::Task::Totals) }
31
+ attr_reader :totals
32
+
33
+ sig { params(totals: Handinger::Task::Totals::OrHash).void }
34
+ attr_writer :totals
35
+
36
+ sig { returns(Handinger::Task::TriggeredBy::TaggedSymbol) }
37
+ attr_accessor :triggered_by
38
+
39
+ sig { returns(String) }
40
+ attr_accessor :worker_id
41
+
42
+ sig do
43
+ params(
44
+ id: String,
45
+ completed_at: T.nilable(String),
46
+ created_at: String,
47
+ created_by_user_id: T.nilable(String),
48
+ organization_id: String,
49
+ status: Handinger::Task::Status::OrSymbol,
50
+ title: String,
51
+ totals: Handinger::Task::Totals::OrHash,
52
+ triggered_by: Handinger::Task::TriggeredBy::OrSymbol,
53
+ worker_id: String
54
+ ).returns(T.attached_class)
55
+ end
56
+ def self.new(
57
+ id:,
58
+ completed_at:,
59
+ created_at:,
60
+ created_by_user_id:,
61
+ organization_id:,
62
+ status:,
63
+ title:,
64
+ totals:,
65
+ triggered_by:,
66
+ worker_id:
67
+ )
68
+ end
69
+
70
+ sig do
71
+ override.returns(
72
+ {
73
+ id: String,
74
+ completed_at: T.nilable(String),
75
+ created_at: String,
76
+ created_by_user_id: T.nilable(String),
77
+ organization_id: String,
78
+ status: Handinger::Task::Status::TaggedSymbol,
79
+ title: String,
80
+ totals: Handinger::Task::Totals,
81
+ triggered_by: Handinger::Task::TriggeredBy::TaggedSymbol,
82
+ worker_id: String
83
+ }
84
+ )
85
+ end
86
+ def to_hash
87
+ end
88
+
89
+ module Status
90
+ extend Handinger::Internal::Type::Enum
91
+
92
+ TaggedSymbol = T.type_alias { T.all(Symbol, Handinger::Task::Status) }
93
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
94
+
95
+ PENDING = T.let(:pending, Handinger::Task::Status::TaggedSymbol)
96
+ RUNNING = T.let(:running, Handinger::Task::Status::TaggedSymbol)
97
+ COMPLETED = T.let(:completed, Handinger::Task::Status::TaggedSymbol)
98
+ ERROR = T.let(:error, Handinger::Task::Status::TaggedSymbol)
99
+ ABORTED = T.let(:aborted, Handinger::Task::Status::TaggedSymbol)
100
+
101
+ sig do
102
+ override.returns(T::Array[Handinger::Task::Status::TaggedSymbol])
103
+ end
104
+ def self.values
105
+ end
106
+ end
107
+
108
+ class Totals < Handinger::Internal::Type::BaseModel
109
+ OrHash =
110
+ T.type_alias do
111
+ T.any(Handinger::Task::Totals, Handinger::Internal::AnyHash)
112
+ end
113
+
114
+ sig { returns(Float) }
115
+ attr_accessor :credits
116
+
117
+ sig { returns(Float) }
118
+ attr_accessor :duration_ms
119
+
120
+ sig { returns(Float) }
121
+ attr_accessor :turn_count
122
+
123
+ sig do
124
+ params(credits: Float, duration_ms: Float, turn_count: Float).returns(
125
+ T.attached_class
126
+ )
127
+ end
128
+ def self.new(credits:, duration_ms:, turn_count:)
129
+ end
130
+
131
+ sig do
132
+ override.returns(
133
+ { credits: Float, duration_ms: Float, turn_count: Float }
134
+ )
135
+ end
136
+ def to_hash
137
+ end
138
+ end
139
+
140
+ module TriggeredBy
141
+ extend Handinger::Internal::Type::Enum
142
+
143
+ TaggedSymbol =
144
+ T.type_alias { T.all(Symbol, Handinger::Task::TriggeredBy) }
145
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
146
+
147
+ API = T.let(:api, Handinger::Task::TriggeredBy::TaggedSymbol)
148
+ EMAIL = T.let(:email, Handinger::Task::TriggeredBy::TaggedSymbol)
149
+ SCHEDULE = T.let(:schedule, Handinger::Task::TriggeredBy::TaggedSymbol)
150
+ UI = T.let(:ui, Handinger::Task::TriggeredBy::TaggedSymbol)
151
+
152
+ sig do
153
+ override.returns(T::Array[Handinger::Task::TriggeredBy::TaggedSymbol])
154
+ end
155
+ def self.values
156
+ end
157
+ end
158
+ end
159
+ end
160
+ end
@@ -0,0 +1,27 @@
1
+ # typed: strong
2
+
3
+ module Handinger
4
+ module Models
5
+ class TaskCreateParams < Handinger::Models::CreateTask
6
+ extend Handinger::Internal::Type::RequestParameters::Converter
7
+ include Handinger::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Handinger::TaskCreateParams, Handinger::Internal::AnyHash)
12
+ end
13
+
14
+ sig do
15
+ params(request_options: Handinger::RequestOptions::OrHash).returns(
16
+ T.attached_class
17
+ )
18
+ end
19
+ def self.new(request_options: {})
20
+ end
21
+
22
+ sig { override.returns({ request_options: Handinger::RequestOptions }) }
23
+ def to_hash
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module Handinger
4
+ module Models
5
+ class TaskDeleteParams < Handinger::Internal::Type::BaseModel
6
+ extend Handinger::Internal::Type::RequestParameters::Converter
7
+ include Handinger::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Handinger::TaskDeleteParams, Handinger::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :task_id
16
+
17
+ sig do
18
+ params(
19
+ task_id: String,
20
+ request_options: Handinger::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
22
+ end
23
+ def self.new(task_id:, request_options: {})
24
+ end
25
+
26
+ sig do
27
+ override.returns(
28
+ { task_id: String, request_options: Handinger::RequestOptions }
29
+ )
30
+ end
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module Handinger
4
+ module Models
5
+ class TaskRetrieveParams < Handinger::Internal::Type::BaseModel
6
+ extend Handinger::Internal::Type::RequestParameters::Converter
7
+ include Handinger::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Handinger::TaskRetrieveParams, Handinger::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :task_id
16
+
17
+ sig do
18
+ params(
19
+ task_id: String,
20
+ request_options: Handinger::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
22
+ end
23
+ def self.new(task_id:, request_options: {})
24
+ end
25
+
26
+ sig do
27
+ override.returns(
28
+ { task_id: String, request_options: Handinger::RequestOptions }
29
+ )
30
+ end
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,149 @@
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(Float) }
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
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
83
+ attr_accessor :structured_output
84
+
85
+ sig { returns(String) }
86
+ attr_accessor :task_id
87
+
88
+ sig do
89
+ params(
90
+ id: String,
91
+ completed_at: T.nilable(String),
92
+ credits: Float,
93
+ duration_ms: Integer,
94
+ input: String,
95
+ input_tokens: Integer,
96
+ output_text: String,
97
+ output_tokens: Integer,
98
+ role: String,
99
+ seq: Integer,
100
+ started_at: String,
101
+ status: String,
102
+ structured_output: T.nilable(T::Hash[Symbol, T.anything]),
103
+ task_id: String
104
+ ).returns(T.attached_class)
105
+ end
106
+ def self.new(
107
+ id:,
108
+ completed_at:,
109
+ credits:,
110
+ duration_ms:,
111
+ input:,
112
+ input_tokens:,
113
+ output_text:,
114
+ output_tokens:,
115
+ role:,
116
+ seq:,
117
+ started_at:,
118
+ status:,
119
+ structured_output:,
120
+ task_id:
121
+ )
122
+ end
123
+
124
+ sig do
125
+ override.returns(
126
+ {
127
+ id: String,
128
+ completed_at: T.nilable(String),
129
+ credits: Float,
130
+ duration_ms: Integer,
131
+ input: String,
132
+ input_tokens: Integer,
133
+ output_text: String,
134
+ output_tokens: Integer,
135
+ role: String,
136
+ seq: Integer,
137
+ started_at: String,
138
+ status: String,
139
+ structured_output: T.nilable(T::Hash[Symbol, T.anything]),
140
+ task_id: String
141
+ }
142
+ )
143
+ end
144
+ def to_hash
145
+ end
146
+ end
147
+ end
148
+ end
149
+ end
@@ -0,0 +1,112 @@
1
+ # typed: strong
2
+
3
+ module Handinger
4
+ module Models
5
+ class UpdateWorker < Handinger::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Handinger::UpdateWorker, Handinger::Internal::AnyHash)
9
+ end
10
+
11
+ # Replaces the persistent system prompt. Subsequent tasks pick up the new
12
+ # instructions immediately; in-flight tasks keep using the previous version.
13
+ sig { returns(T.nilable(String)) }
14
+ attr_reader :instructions
15
+
16
+ sig { params(instructions: String).void }
17
+ attr_writer :instructions
18
+
19
+ # Replace the worker's structured output schema. Pass `null` to clear it and
20
+ # return to free-form text responses.
21
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
22
+ attr_accessor :output_schema
23
+
24
+ # Replaces the worker's short one-line summary.
25
+ sig { returns(T.nilable(String)) }
26
+ attr_reader :summary
27
+
28
+ sig { params(summary: String).void }
29
+ attr_writer :summary
30
+
31
+ # New display name for the worker.
32
+ sig { returns(T.nilable(String)) }
33
+ attr_reader :title
34
+
35
+ sig { params(title: String).void }
36
+ attr_writer :title
37
+
38
+ # Change visibility between `public` (any org member can run tasks) and `private`
39
+ # (only invited members).
40
+ sig { returns(T.nilable(Handinger::UpdateWorker::Visibility::OrSymbol)) }
41
+ attr_reader :visibility
42
+
43
+ sig do
44
+ params(visibility: Handinger::UpdateWorker::Visibility::OrSymbol).void
45
+ end
46
+ attr_writer :visibility
47
+
48
+ sig do
49
+ params(
50
+ instructions: String,
51
+ output_schema: T.nilable(T::Hash[Symbol, T.anything]),
52
+ summary: String,
53
+ title: String,
54
+ visibility: Handinger::UpdateWorker::Visibility::OrSymbol
55
+ ).returns(T.attached_class)
56
+ end
57
+ def self.new(
58
+ # Replaces the persistent system prompt. Subsequent tasks pick up the new
59
+ # instructions immediately; in-flight tasks keep using the previous version.
60
+ instructions: nil,
61
+ # Replace the worker's structured output schema. Pass `null` to clear it and
62
+ # return to free-form text responses.
63
+ output_schema: nil,
64
+ # Replaces the worker's short one-line summary.
65
+ summary: nil,
66
+ # New display name for the worker.
67
+ title: nil,
68
+ # Change visibility between `public` (any org member can run tasks) and `private`
69
+ # (only invited members).
70
+ visibility: nil
71
+ )
72
+ end
73
+
74
+ sig do
75
+ override.returns(
76
+ {
77
+ instructions: String,
78
+ output_schema: T.nilable(T::Hash[Symbol, T.anything]),
79
+ summary: String,
80
+ title: String,
81
+ visibility: Handinger::UpdateWorker::Visibility::OrSymbol
82
+ }
83
+ )
84
+ end
85
+ def to_hash
86
+ end
87
+
88
+ # Change visibility between `public` (any org member can run tasks) and `private`
89
+ # (only invited members).
90
+ module Visibility
91
+ extend Handinger::Internal::Type::Enum
92
+
93
+ TaggedSymbol =
94
+ T.type_alias { T.all(Symbol, Handinger::UpdateWorker::Visibility) }
95
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
96
+
97
+ PUBLIC =
98
+ T.let(:public, Handinger::UpdateWorker::Visibility::TaggedSymbol)
99
+ PRIVATE =
100
+ T.let(:private, Handinger::UpdateWorker::Visibility::TaggedSymbol)
101
+
102
+ sig do
103
+ override.returns(
104
+ T::Array[Handinger::UpdateWorker::Visibility::TaggedSymbol]
105
+ )
106
+ end
107
+ def self.values
108
+ end
109
+ end
110
+ end
111
+ end
112
+ end
@@ -45,11 +45,8 @@ module Handinger
45
45
  sig { returns(Handinger::Worker::Status::TaggedSymbol) }
46
46
  attr_accessor :status
47
47
 
48
- sig { returns(T.nilable(Handinger::Worker::Costs)) }
49
- attr_reader :costs
50
-
51
- sig { params(costs: T.nilable(Handinger::Worker::Costs::OrHash)).void }
52
- attr_writer :costs
48
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
49
+ attr_accessor :structured_output
53
50
 
54
51
  sig { returns(T.nilable(Handinger::Worker::Usage)) }
55
52
  attr_reader :usage
@@ -72,7 +69,7 @@ module Handinger
72
69
  running: T::Boolean,
73
70
  sources: T::Array[Handinger::Worker::Source::OrHash],
74
71
  status: Handinger::Worker::Status::OrSymbol,
75
- costs: T.nilable(Handinger::Worker::Costs::OrHash),
72
+ structured_output: T.nilable(T::Hash[Symbol, T.anything]),
76
73
  usage: Handinger::Worker::Usage::OrHash
77
74
  ).returns(T.attached_class)
78
75
  end
@@ -90,7 +87,7 @@ module Handinger
90
87
  running:,
91
88
  sources:,
92
89
  status:,
93
- costs: nil,
90
+ structured_output:,
94
91
  usage: nil
95
92
  )
96
93
  end
@@ -111,7 +108,7 @@ module Handinger
111
108
  running: T::Boolean,
112
109
  sources: T::Array[Handinger::Worker::Source],
113
110
  status: Handinger::Worker::Status::TaggedSymbol,
114
- costs: T.nilable(Handinger::Worker::Costs),
111
+ structured_output: T.nilable(T::Hash[Symbol, T.anything]),
115
112
  usage: Handinger::Worker::Usage
116
113
  }
117
114
  )
@@ -413,84 +410,12 @@ module Handinger
413
410
  end
414
411
  end
415
412
 
416
- class Costs < Handinger::Internal::Type::BaseModel
417
- OrHash =
418
- T.type_alias do
419
- T.any(Handinger::Worker::Costs, Handinger::Internal::AnyHash)
420
- end
421
-
422
- sig { returns(Float) }
423
- attr_accessor :internal_cost_usd
424
-
425
- sig { returns(Float) }
426
- attr_accessor :model_cost_usd
427
-
428
- sig { returns(Float) }
429
- attr_accessor :sandbox_cost_usd
430
-
431
- sig { returns(Float) }
432
- attr_accessor :tool_cost_usd
433
-
434
- sig do
435
- params(
436
- internal_cost_usd: Float,
437
- model_cost_usd: Float,
438
- sandbox_cost_usd: Float,
439
- tool_cost_usd: Float
440
- ).returns(T.attached_class)
441
- end
442
- def self.new(
443
- internal_cost_usd:,
444
- model_cost_usd:,
445
- sandbox_cost_usd:,
446
- tool_cost_usd:
447
- )
448
- end
449
-
450
- sig do
451
- override.returns(
452
- {
453
- internal_cost_usd: Float,
454
- model_cost_usd: Float,
455
- sandbox_cost_usd: Float,
456
- tool_cost_usd: Float
457
- }
458
- )
459
- end
460
- def to_hash
461
- end
462
- end
463
-
464
413
  class Usage < Handinger::Internal::Type::BaseModel
465
414
  OrHash =
466
415
  T.type_alias do
467
416
  T.any(Handinger::Worker::Usage, Handinger::Internal::AnyHash)
468
417
  end
469
418
 
470
- sig { returns(Integer) }
471
- attr_accessor :cache_read_tokens
472
-
473
- sig { returns(Integer) }
474
- attr_accessor :cache_write_tokens
475
-
476
- sig { returns(Float) }
477
- attr_accessor :cost_usd
478
-
479
- sig { returns(Integer) }
480
- attr_accessor :input_tokens
481
-
482
- sig { returns(Integer) }
483
- attr_accessor :output_tokens
484
-
485
- sig { returns(Integer) }
486
- attr_accessor :reasoning_tokens
487
-
488
- sig { returns(Integer) }
489
- attr_accessor :steps
490
-
491
- sig { returns(Integer) }
492
- attr_accessor :total_tokens
493
-
494
419
  sig { returns(T.nilable(Integer)) }
495
420
  attr_reader :credits
496
421
 
@@ -504,49 +429,14 @@ module Handinger
504
429
  attr_writer :duration_ms
505
430
 
506
431
  sig do
507
- params(
508
- cache_read_tokens: Integer,
509
- cache_write_tokens: Integer,
510
- cost_usd: Float,
511
- input_tokens: Integer,
512
- output_tokens: Integer,
513
- reasoning_tokens: Integer,
514
- steps: Integer,
515
- total_tokens: Integer,
516
- credits: Integer,
517
- duration_ms: Integer
518
- ).returns(T.attached_class)
432
+ params(credits: Integer, duration_ms: Integer).returns(
433
+ T.attached_class
434
+ )
519
435
  end
520
- def self.new(
521
- cache_read_tokens:,
522
- cache_write_tokens:,
523
- cost_usd:,
524
- input_tokens:,
525
- output_tokens:,
526
- reasoning_tokens:,
527
- steps:,
528
- total_tokens:,
529
- credits: nil,
530
- duration_ms: nil
531
- )
436
+ def self.new(credits: nil, duration_ms: nil)
532
437
  end
533
438
 
534
- sig do
535
- override.returns(
536
- {
537
- cache_read_tokens: Integer,
538
- cache_write_tokens: Integer,
539
- cost_usd: Float,
540
- input_tokens: Integer,
541
- output_tokens: Integer,
542
- reasoning_tokens: Integer,
543
- steps: Integer,
544
- total_tokens: Integer,
545
- credits: Integer,
546
- duration_ms: Integer
547
- }
548
- )
549
- end
439
+ sig { override.returns({ credits: Integer, duration_ms: Integer }) }
550
440
  def to_hash
551
441
  end
552
442
  end