handinger 0.0.2 → 0.2.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 +4 -4
- data/CHANGELOG.md +35 -0
- data/README.md +18 -18
- data/lib/handinger/client.rb +21 -1
- data/lib/handinger/internal/transport/base_client.rb +1 -3
- data/lib/handinger/internal/type/base_model.rb +3 -3
- data/lib/handinger/models/create_task.rb +28 -0
- data/lib/handinger/models/create_worker.rb +59 -19
- data/lib/handinger/models/task.rb +119 -0
- data/lib/handinger/models/task_create_params.rb +14 -0
- data/lib/handinger/models/{worker_continue_params.rb → task_retrieve_params.rb} +6 -6
- data/lib/handinger/models/task_with_turns.rb +113 -0
- data/lib/handinger/models/worker.rb +15 -84
- data/lib/handinger/models/worker_create_response.rb +84 -0
- data/lib/handinger/models/worker_retrieve_email_response.rb +10 -1
- data/lib/handinger/models/worker_retrieve_params.rb +22 -4
- data/lib/handinger/models.rb +10 -6
- data/lib/handinger/resources/tasks.rb +76 -0
- data/lib/handinger/resources/workers.rb +31 -92
- data/lib/handinger/version.rb +1 -1
- data/lib/handinger.rb +7 -6
- data/rbi/handinger/client.rbi +5 -0
- data/rbi/handinger/internal/transport/base_client.rbi +2 -18
- data/rbi/handinger/models/create_task.rbi +40 -0
- data/rbi/handinger/models/create_worker.rbi +84 -26
- data/rbi/handinger/models/task.rbi +160 -0
- data/rbi/handinger/models/task_create_params.rbi +27 -0
- data/rbi/handinger/models/{worker_continue_params.rbi → task_retrieve_params.rbi} +6 -6
- data/rbi/handinger/models/task_with_turns.rbi +149 -0
- data/rbi/handinger/models/worker.rbi +16 -117
- data/rbi/handinger/models/worker_create_response.rbi +129 -0
- data/rbi/handinger/models/worker_retrieve_email_response.rbi +20 -1
- data/rbi/handinger/models/worker_retrieve_params.rbi +40 -6
- data/rbi/handinger/models.rbi +10 -6
- data/rbi/handinger/resources/tasks.rbi +70 -0
- data/rbi/handinger/resources/workers.rbi +37 -62
- data/sig/handinger/client.rbs +2 -0
- data/sig/handinger/models/create_task.rbs +19 -0
- data/sig/handinger/models/create_worker.rbs +44 -23
- data/sig/handinger/models/task.rbs +114 -0
- data/sig/handinger/models/task_create_params.rbs +15 -0
- data/sig/handinger/models/{worker_stream_updates_params.rbs → task_retrieve_params.rbs} +6 -6
- data/sig/handinger/models/task_with_turns.rbs +104 -0
- data/sig/handinger/models/worker.rbs +11 -86
- data/sig/handinger/models/worker_create_response.rbs +76 -0
- data/sig/handinger/models/worker_retrieve_email_response.rbs +9 -1
- data/sig/handinger/models/worker_retrieve_params.rbs +21 -5
- data/sig/handinger/models.rbs +10 -6
- data/sig/handinger/resources/tasks.rbs +24 -0
- data/sig/handinger/resources/workers.rbs +9 -25
- metadata +23 -20
- data/lib/handinger/internal/stream.rb +0 -29
- data/lib/handinger/internal/type/base_stream.rb +0 -83
- data/lib/handinger/models/worker_retrieve_file_params.rb +0 -26
- data/lib/handinger/models/worker_stream_updates_params.rb +0 -20
- data/lib/handinger/models/worker_stream_updates_response.rb +0 -7
- data/rbi/handinger/internal/stream.rbi +0 -20
- data/rbi/handinger/internal/type/base_stream.rbi +0 -75
- data/rbi/handinger/models/worker_retrieve_file_params.rbi +0 -46
- data/rbi/handinger/models/worker_stream_updates_params.rbi +0 -38
- data/rbi/handinger/models/worker_stream_updates_response.rbi +0 -7
- data/sig/handinger/internal/stream.rbs +0 -9
- data/sig/handinger/internal/type/base_stream.rbs +0 -38
- data/sig/handinger/models/worker_continue_params.rbs +0 -25
- data/sig/handinger/models/worker_retrieve_file_params.rbs +0 -28
- data/sig/handinger/models/worker_stream_updates_response.rbs +0 -5
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Handinger
|
|
4
|
+
module Models
|
|
5
|
+
class CreateTask < Handinger::Models::CreateWorker
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Handinger::CreateTask, Handinger::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Worker id the task belongs to.
|
|
12
|
+
sig { returns(String) }
|
|
13
|
+
attr_accessor :worker_id
|
|
14
|
+
|
|
15
|
+
# Optional client-provided task id. Reuse this id to add turns to an existing
|
|
16
|
+
# task.
|
|
17
|
+
sig { returns(T.nilable(String)) }
|
|
18
|
+
attr_reader :task_id
|
|
19
|
+
|
|
20
|
+
sig { params(task_id: String).void }
|
|
21
|
+
attr_writer :task_id
|
|
22
|
+
|
|
23
|
+
sig do
|
|
24
|
+
params(worker_id: String, task_id: String).returns(T.attached_class)
|
|
25
|
+
end
|
|
26
|
+
def self.new(
|
|
27
|
+
# Worker id the task belongs to.
|
|
28
|
+
worker_id:,
|
|
29
|
+
# Optional client-provided task id. Reuse this id to add turns to an existing
|
|
30
|
+
# task.
|
|
31
|
+
task_id: nil
|
|
32
|
+
)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
sig { override.returns({ worker_id: String, task_id: String }) }
|
|
36
|
+
def to_hash
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -8,60 +8,118 @@ module Handinger
|
|
|
8
8
|
T.any(Handinger::CreateWorker, Handinger::Internal::AnyHash)
|
|
9
9
|
end
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
# Persistent system prompt the worker uses for every task it runs.
|
|
12
|
+
sig { returns(T.nilable(String)) }
|
|
13
|
+
attr_reader :instructions
|
|
13
14
|
|
|
14
|
-
sig {
|
|
15
|
-
|
|
15
|
+
sig { params(instructions: String).void }
|
|
16
|
+
attr_writer :instructions
|
|
16
17
|
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
# Optional JSON Schema (Draft-07) describing the structured object the worker must
|
|
19
|
+
# produce. When set, every task response is validated against the schema and
|
|
20
|
+
# exposed as `structuredOutput`.
|
|
21
|
+
sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
|
|
22
|
+
attr_reader :output_schema
|
|
19
23
|
|
|
20
|
-
sig {
|
|
21
|
-
|
|
24
|
+
sig { params(output_schema: T::Hash[Symbol, T.anything]).void }
|
|
25
|
+
attr_writer :output_schema
|
|
22
26
|
|
|
23
|
-
|
|
24
|
-
|
|
27
|
+
# Natural-language description of the worker to use for AI-generated instructions
|
|
28
|
+
# when `instructions` is omitted.
|
|
29
|
+
sig { returns(T.nilable(String)) }
|
|
30
|
+
attr_reader :prompt
|
|
31
|
+
|
|
32
|
+
sig { params(prompt: String).void }
|
|
33
|
+
attr_writer :prompt
|
|
34
|
+
|
|
35
|
+
# Short one-line description of the worker's purpose. Auto-generated when omitted
|
|
36
|
+
# and a `prompt` is provided.
|
|
37
|
+
sig { returns(T.nilable(String)) }
|
|
38
|
+
attr_reader :summary
|
|
39
|
+
|
|
40
|
+
sig { params(summary: String).void }
|
|
41
|
+
attr_writer :summary
|
|
42
|
+
|
|
43
|
+
# Optional display name. When omitted, Handinger assigns a random dog-themed name.
|
|
44
|
+
sig { returns(T.nilable(String)) }
|
|
45
|
+
attr_reader :title
|
|
46
|
+
|
|
47
|
+
sig { params(title: String).void }
|
|
48
|
+
attr_writer :title
|
|
49
|
+
|
|
50
|
+
# `public` (default) is visible to all org members. `private` is only visible to
|
|
51
|
+
# invited members.
|
|
52
|
+
sig { returns(T.nilable(Handinger::CreateWorker::Visibility::OrSymbol)) }
|
|
53
|
+
attr_reader :visibility
|
|
54
|
+
|
|
55
|
+
sig do
|
|
56
|
+
params(visibility: Handinger::CreateWorker::Visibility::OrSymbol).void
|
|
57
|
+
end
|
|
58
|
+
attr_writer :visibility
|
|
25
59
|
|
|
26
60
|
sig do
|
|
27
61
|
params(
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
62
|
+
instructions: String,
|
|
63
|
+
output_schema: T::Hash[Symbol, T.anything],
|
|
64
|
+
prompt: String,
|
|
65
|
+
summary: String,
|
|
66
|
+
title: String,
|
|
67
|
+
visibility: Handinger::CreateWorker::Visibility::OrSymbol
|
|
31
68
|
).returns(T.attached_class)
|
|
32
69
|
end
|
|
33
|
-
def self.new(
|
|
70
|
+
def self.new(
|
|
71
|
+
# Persistent system prompt the worker uses for every task it runs.
|
|
72
|
+
instructions: nil,
|
|
73
|
+
# Optional JSON Schema (Draft-07) describing the structured object the worker must
|
|
74
|
+
# produce. When set, every task response is validated against the schema and
|
|
75
|
+
# exposed as `structuredOutput`.
|
|
76
|
+
output_schema: nil,
|
|
77
|
+
# Natural-language description of the worker to use for AI-generated instructions
|
|
78
|
+
# when `instructions` is omitted.
|
|
79
|
+
prompt: nil,
|
|
80
|
+
# Short one-line description of the worker's purpose. Auto-generated when omitted
|
|
81
|
+
# and a `prompt` is provided.
|
|
82
|
+
summary: nil,
|
|
83
|
+
# Optional display name. When omitted, Handinger assigns a random dog-themed name.
|
|
84
|
+
title: nil,
|
|
85
|
+
# `public` (default) is visible to all org members. `private` is only visible to
|
|
86
|
+
# invited members.
|
|
87
|
+
visibility: nil
|
|
88
|
+
)
|
|
34
89
|
end
|
|
35
90
|
|
|
36
91
|
sig do
|
|
37
92
|
override.returns(
|
|
38
93
|
{
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
94
|
+
instructions: String,
|
|
95
|
+
output_schema: T::Hash[Symbol, T.anything],
|
|
96
|
+
prompt: String,
|
|
97
|
+
summary: String,
|
|
98
|
+
title: String,
|
|
99
|
+
visibility: Handinger::CreateWorker::Visibility::OrSymbol
|
|
42
100
|
}
|
|
43
101
|
)
|
|
44
102
|
end
|
|
45
103
|
def to_hash
|
|
46
104
|
end
|
|
47
105
|
|
|
48
|
-
|
|
106
|
+
# `public` (default) is visible to all org members. `private` is only visible to
|
|
107
|
+
# invited members.
|
|
108
|
+
module Visibility
|
|
49
109
|
extend Handinger::Internal::Type::Enum
|
|
50
110
|
|
|
51
111
|
TaggedSymbol =
|
|
52
|
-
T.type_alias { T.all(Symbol, Handinger::CreateWorker::
|
|
112
|
+
T.type_alias { T.all(Symbol, Handinger::CreateWorker::Visibility) }
|
|
53
113
|
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
54
114
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
UNLIMITED =
|
|
60
|
-
T.let(:unlimited, Handinger::CreateWorker::Budget::TaggedSymbol)
|
|
115
|
+
PUBLIC =
|
|
116
|
+
T.let(:public, Handinger::CreateWorker::Visibility::TaggedSymbol)
|
|
117
|
+
PRIVATE =
|
|
118
|
+
T.let(:private, Handinger::CreateWorker::Visibility::TaggedSymbol)
|
|
61
119
|
|
|
62
120
|
sig do
|
|
63
121
|
override.returns(
|
|
64
|
-
T::Array[Handinger::CreateWorker::
|
|
122
|
+
T::Array[Handinger::CreateWorker::Visibility::TaggedSymbol]
|
|
65
123
|
)
|
|
66
124
|
end
|
|
67
125
|
def self.values
|
|
@@ -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
|
|
@@ -2,30 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
module Handinger
|
|
4
4
|
module Models
|
|
5
|
-
class
|
|
5
|
+
class TaskRetrieveParams < Handinger::Internal::Type::BaseModel
|
|
6
6
|
extend Handinger::Internal::Type::RequestParameters::Converter
|
|
7
7
|
include Handinger::Internal::Type::RequestParameters
|
|
8
8
|
|
|
9
9
|
OrHash =
|
|
10
10
|
T.type_alias do
|
|
11
|
-
T.any(Handinger::
|
|
11
|
+
T.any(Handinger::TaskRetrieveParams, Handinger::Internal::AnyHash)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
sig { returns(String) }
|
|
15
|
-
attr_accessor :
|
|
15
|
+
attr_accessor :task_id
|
|
16
16
|
|
|
17
17
|
sig do
|
|
18
18
|
params(
|
|
19
|
-
|
|
19
|
+
task_id: String,
|
|
20
20
|
request_options: Handinger::RequestOptions::OrHash
|
|
21
21
|
).returns(T.attached_class)
|
|
22
22
|
end
|
|
23
|
-
def self.new(
|
|
23
|
+
def self.new(task_id:, request_options: {})
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
sig do
|
|
27
27
|
override.returns(
|
|
28
|
-
{
|
|
28
|
+
{ task_id: String, request_options: Handinger::RequestOptions }
|
|
29
29
|
)
|
|
30
30
|
end
|
|
31
31
|
def to_hash
|
|
@@ -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
|