handinger 0.1.0 → 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 +27 -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 +9 -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 +10 -120
- 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 +7 -89
- 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
|
@@ -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(
|
|
49
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
509
|
-
|
|
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
|
|
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
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Handinger
|
|
4
|
+
module Models
|
|
5
|
+
class WorkerCreateResponse < Handinger::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(
|
|
9
|
+
Handinger::Models::WorkerCreateResponse,
|
|
10
|
+
Handinger::Internal::AnyHash
|
|
11
|
+
)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
sig { returns(String) }
|
|
15
|
+
attr_accessor :id
|
|
16
|
+
|
|
17
|
+
sig { returns(T.nilable(String)) }
|
|
18
|
+
attr_accessor :created_at
|
|
19
|
+
|
|
20
|
+
sig { returns(String) }
|
|
21
|
+
attr_accessor :instructions
|
|
22
|
+
|
|
23
|
+
sig { returns(String) }
|
|
24
|
+
attr_accessor :organization_id
|
|
25
|
+
|
|
26
|
+
sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
|
|
27
|
+
attr_accessor :output_schema
|
|
28
|
+
|
|
29
|
+
sig { returns(String) }
|
|
30
|
+
attr_accessor :summary
|
|
31
|
+
|
|
32
|
+
sig { returns(String) }
|
|
33
|
+
attr_accessor :title
|
|
34
|
+
|
|
35
|
+
sig { returns(T.nilable(String)) }
|
|
36
|
+
attr_accessor :updated_at
|
|
37
|
+
|
|
38
|
+
sig { returns(String) }
|
|
39
|
+
attr_accessor :user_id
|
|
40
|
+
|
|
41
|
+
sig do
|
|
42
|
+
returns(
|
|
43
|
+
Handinger::Models::WorkerCreateResponse::Visibility::TaggedSymbol
|
|
44
|
+
)
|
|
45
|
+
end
|
|
46
|
+
attr_accessor :visibility
|
|
47
|
+
|
|
48
|
+
sig do
|
|
49
|
+
params(
|
|
50
|
+
id: String,
|
|
51
|
+
created_at: T.nilable(String),
|
|
52
|
+
instructions: String,
|
|
53
|
+
organization_id: String,
|
|
54
|
+
output_schema: T.nilable(T::Hash[Symbol, T.anything]),
|
|
55
|
+
summary: String,
|
|
56
|
+
title: String,
|
|
57
|
+
updated_at: T.nilable(String),
|
|
58
|
+
user_id: String,
|
|
59
|
+
visibility:
|
|
60
|
+
Handinger::Models::WorkerCreateResponse::Visibility::OrSymbol
|
|
61
|
+
).returns(T.attached_class)
|
|
62
|
+
end
|
|
63
|
+
def self.new(
|
|
64
|
+
id:,
|
|
65
|
+
created_at:,
|
|
66
|
+
instructions:,
|
|
67
|
+
organization_id:,
|
|
68
|
+
output_schema:,
|
|
69
|
+
summary:,
|
|
70
|
+
title:,
|
|
71
|
+
updated_at:,
|
|
72
|
+
user_id:,
|
|
73
|
+
visibility:
|
|
74
|
+
)
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
sig do
|
|
78
|
+
override.returns(
|
|
79
|
+
{
|
|
80
|
+
id: String,
|
|
81
|
+
created_at: T.nilable(String),
|
|
82
|
+
instructions: String,
|
|
83
|
+
organization_id: String,
|
|
84
|
+
output_schema: T.nilable(T::Hash[Symbol, T.anything]),
|
|
85
|
+
summary: String,
|
|
86
|
+
title: String,
|
|
87
|
+
updated_at: T.nilable(String),
|
|
88
|
+
user_id: String,
|
|
89
|
+
visibility:
|
|
90
|
+
Handinger::Models::WorkerCreateResponse::Visibility::TaggedSymbol
|
|
91
|
+
}
|
|
92
|
+
)
|
|
93
|
+
end
|
|
94
|
+
def to_hash
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
module Visibility
|
|
98
|
+
extend Handinger::Internal::Type::Enum
|
|
99
|
+
|
|
100
|
+
TaggedSymbol =
|
|
101
|
+
T.type_alias do
|
|
102
|
+
T.all(Symbol, Handinger::Models::WorkerCreateResponse::Visibility)
|
|
103
|
+
end
|
|
104
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
105
|
+
|
|
106
|
+
PUBLIC =
|
|
107
|
+
T.let(
|
|
108
|
+
:public,
|
|
109
|
+
Handinger::Models::WorkerCreateResponse::Visibility::TaggedSymbol
|
|
110
|
+
)
|
|
111
|
+
PRIVATE =
|
|
112
|
+
T.let(
|
|
113
|
+
:private,
|
|
114
|
+
Handinger::Models::WorkerCreateResponse::Visibility::TaggedSymbol
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
sig do
|
|
118
|
+
override.returns(
|
|
119
|
+
T::Array[
|
|
120
|
+
Handinger::Models::WorkerCreateResponse::Visibility::TaggedSymbol
|
|
121
|
+
]
|
|
122
|
+
)
|
|
123
|
+
end
|
|
124
|
+
def self.values
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
end
|
|
@@ -2,6 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
module Handinger
|
|
4
4
|
module Models
|
|
5
|
-
WorkerRetrieveEmailResponse
|
|
5
|
+
class WorkerRetrieveEmailResponse < Handinger::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(
|
|
9
|
+
Handinger::Models::WorkerRetrieveEmailResponse,
|
|
10
|
+
Handinger::Internal::AnyHash
|
|
11
|
+
)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
sig { returns(String) }
|
|
15
|
+
attr_accessor :email
|
|
16
|
+
|
|
17
|
+
sig { params(email: String).returns(T.attached_class) }
|
|
18
|
+
def self.new(email:)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
sig { override.returns({ email: String }) }
|
|
22
|
+
def to_hash
|
|
23
|
+
end
|
|
24
|
+
end
|
|
6
25
|
end
|
|
7
26
|
end
|
|
@@ -14,23 +14,31 @@ module Handinger
|
|
|
14
14
|
sig { returns(String) }
|
|
15
15
|
attr_accessor :worker_id
|
|
16
16
|
|
|
17
|
-
#
|
|
18
|
-
|
|
17
|
+
# Set to "true" to receive a server-sent event stream that replays all stored
|
|
18
|
+
# messages and then continues with live chunks from the active task (if any)
|
|
19
|
+
# before closing.
|
|
20
|
+
sig do
|
|
21
|
+
returns(T.nilable(Handinger::WorkerRetrieveParams::Stream::OrSymbol))
|
|
22
|
+
end
|
|
19
23
|
attr_reader :stream
|
|
20
24
|
|
|
21
|
-
sig
|
|
25
|
+
sig do
|
|
26
|
+
params(stream: Handinger::WorkerRetrieveParams::Stream::OrSymbol).void
|
|
27
|
+
end
|
|
22
28
|
attr_writer :stream
|
|
23
29
|
|
|
24
30
|
sig do
|
|
25
31
|
params(
|
|
26
32
|
worker_id: String,
|
|
27
|
-
stream:
|
|
33
|
+
stream: Handinger::WorkerRetrieveParams::Stream::OrSymbol,
|
|
28
34
|
request_options: Handinger::RequestOptions::OrHash
|
|
29
35
|
).returns(T.attached_class)
|
|
30
36
|
end
|
|
31
37
|
def self.new(
|
|
32
38
|
worker_id:,
|
|
33
|
-
#
|
|
39
|
+
# Set to "true" to receive a server-sent event stream that replays all stored
|
|
40
|
+
# messages and then continues with live chunks from the active task (if any)
|
|
41
|
+
# before closing.
|
|
34
42
|
stream: nil,
|
|
35
43
|
request_options: {}
|
|
36
44
|
)
|
|
@@ -40,13 +48,39 @@ module Handinger
|
|
|
40
48
|
override.returns(
|
|
41
49
|
{
|
|
42
50
|
worker_id: String,
|
|
43
|
-
stream:
|
|
51
|
+
stream: Handinger::WorkerRetrieveParams::Stream::OrSymbol,
|
|
44
52
|
request_options: Handinger::RequestOptions
|
|
45
53
|
}
|
|
46
54
|
)
|
|
47
55
|
end
|
|
48
56
|
def to_hash
|
|
49
57
|
end
|
|
58
|
+
|
|
59
|
+
# Set to "true" to receive a server-sent event stream that replays all stored
|
|
60
|
+
# messages and then continues with live chunks from the active task (if any)
|
|
61
|
+
# before closing.
|
|
62
|
+
module Stream
|
|
63
|
+
extend Handinger::Internal::Type::Enum
|
|
64
|
+
|
|
65
|
+
TaggedSymbol =
|
|
66
|
+
T.type_alias do
|
|
67
|
+
T.all(Symbol, Handinger::WorkerRetrieveParams::Stream)
|
|
68
|
+
end
|
|
69
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
70
|
+
|
|
71
|
+
TRUE =
|
|
72
|
+
T.let(:true, Handinger::WorkerRetrieveParams::Stream::TaggedSymbol)
|
|
73
|
+
FALSE =
|
|
74
|
+
T.let(:false, Handinger::WorkerRetrieveParams::Stream::TaggedSymbol)
|
|
75
|
+
|
|
76
|
+
sig do
|
|
77
|
+
override.returns(
|
|
78
|
+
T::Array[Handinger::WorkerRetrieveParams::Stream::TaggedSymbol]
|
|
79
|
+
)
|
|
80
|
+
end
|
|
81
|
+
def self.values
|
|
82
|
+
end
|
|
83
|
+
end
|
|
50
84
|
end
|
|
51
85
|
end
|
|
52
86
|
end
|
data/rbi/handinger/models.rbi
CHANGED
|
@@ -1,21 +1,25 @@
|
|
|
1
1
|
# typed: strong
|
|
2
2
|
|
|
3
3
|
module Handinger
|
|
4
|
+
CreateTask = Handinger::Models::CreateTask
|
|
5
|
+
|
|
4
6
|
CreateWorker = Handinger::Models::CreateWorker
|
|
5
7
|
|
|
6
|
-
|
|
8
|
+
Task = Handinger::Models::Task
|
|
9
|
+
|
|
10
|
+
TaskCreateParams = Handinger::Models::TaskCreateParams
|
|
11
|
+
|
|
12
|
+
TaskRetrieveParams = Handinger::Models::TaskRetrieveParams
|
|
7
13
|
|
|
8
|
-
|
|
14
|
+
TaskWithTurns = Handinger::Models::TaskWithTurns
|
|
15
|
+
|
|
16
|
+
Worker = Handinger::Models::Worker
|
|
9
17
|
|
|
10
18
|
WorkerCreateParams = Handinger::Models::WorkerCreateParams
|
|
11
19
|
|
|
12
20
|
WorkerRetrieveEmailParams = Handinger::Models::WorkerRetrieveEmailParams
|
|
13
21
|
|
|
14
|
-
WorkerRetrieveFileParams = Handinger::Models::WorkerRetrieveFileParams
|
|
15
|
-
|
|
16
22
|
WorkerRetrieveParams = Handinger::Models::WorkerRetrieveParams
|
|
17
23
|
|
|
18
24
|
Workers = Handinger::Models::Workers
|
|
19
|
-
|
|
20
|
-
WorkerStreamUpdatesParams = Handinger::Models::WorkerStreamUpdatesParams
|
|
21
25
|
end
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Handinger
|
|
4
|
+
module Resources
|
|
5
|
+
# Run and inspect tasks against a worker.
|
|
6
|
+
class Tasks
|
|
7
|
+
# Run a new task against an existing worker. Send `multipart/form-data` to attach
|
|
8
|
+
# files; the bytes are bootstrapped into the worker's workspace before the task
|
|
9
|
+
# starts.
|
|
10
|
+
sig do
|
|
11
|
+
params(
|
|
12
|
+
worker_id: String,
|
|
13
|
+
instructions: String,
|
|
14
|
+
output_schema: T::Hash[Symbol, T.anything],
|
|
15
|
+
prompt: String,
|
|
16
|
+
summary: String,
|
|
17
|
+
task_id: String,
|
|
18
|
+
title: String,
|
|
19
|
+
visibility: Handinger::CreateTask::Visibility::OrSymbol,
|
|
20
|
+
request_options: Handinger::RequestOptions::OrHash
|
|
21
|
+
).returns(Handinger::Worker)
|
|
22
|
+
end
|
|
23
|
+
def create(
|
|
24
|
+
# Worker id the task belongs to.
|
|
25
|
+
worker_id:,
|
|
26
|
+
# Persistent system prompt the worker uses for every task it runs.
|
|
27
|
+
instructions: nil,
|
|
28
|
+
# Optional JSON Schema (Draft-07) describing the structured object the worker must
|
|
29
|
+
# produce. When set, every task response is validated against the schema and
|
|
30
|
+
# exposed as `structuredOutput`.
|
|
31
|
+
output_schema: nil,
|
|
32
|
+
# Natural-language description of the worker to use for AI-generated instructions
|
|
33
|
+
# when `instructions` is omitted.
|
|
34
|
+
prompt: nil,
|
|
35
|
+
# Short one-line description of the worker's purpose. Auto-generated when omitted
|
|
36
|
+
# and a `prompt` is provided.
|
|
37
|
+
summary: nil,
|
|
38
|
+
# Optional client-provided task id. Reuse this id to add turns to an existing
|
|
39
|
+
# task.
|
|
40
|
+
task_id: nil,
|
|
41
|
+
# Optional display name. When omitted, Handinger assigns a random dog-themed name.
|
|
42
|
+
title: nil,
|
|
43
|
+
# `public` (default) is visible to all org members. `private` is only visible to
|
|
44
|
+
# invited members.
|
|
45
|
+
visibility: nil,
|
|
46
|
+
request_options: {}
|
|
47
|
+
)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Retrieve a single task and its individual turns.
|
|
51
|
+
sig do
|
|
52
|
+
params(
|
|
53
|
+
task_id: String,
|
|
54
|
+
request_options: Handinger::RequestOptions::OrHash
|
|
55
|
+
).returns(Handinger::TaskWithTurns)
|
|
56
|
+
end
|
|
57
|
+
def retrieve(
|
|
58
|
+
# Task id returned by the create task endpoint.
|
|
59
|
+
task_id,
|
|
60
|
+
request_options: {}
|
|
61
|
+
)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# @api private
|
|
65
|
+
sig { params(client: Handinger::Client).returns(T.attached_class) }
|
|
66
|
+
def self.new(client:)
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
@@ -2,56 +2,63 @@
|
|
|
2
2
|
|
|
3
3
|
module Handinger
|
|
4
4
|
module Resources
|
|
5
|
+
# Create, retrieve, and manage agent worker templates.
|
|
5
6
|
class Workers
|
|
6
7
|
# Manage future and recurring worker tasks.
|
|
7
8
|
sig { returns(Handinger::Resources::Workers::Schedules) }
|
|
8
9
|
attr_reader :schedules
|
|
9
10
|
|
|
10
|
-
# Create a new
|
|
11
|
+
# Create a new worker. The worker is a reusable agent template; tasks are runs
|
|
12
|
+
# against this template. Use `POST /tasks` to actually run the agent.
|
|
11
13
|
sig do
|
|
12
14
|
params(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
instructions: String,
|
|
16
|
+
output_schema: T::Hash[Symbol, T.anything],
|
|
17
|
+
prompt: String,
|
|
18
|
+
summary: String,
|
|
19
|
+
title: String,
|
|
20
|
+
visibility: Handinger::CreateWorker::Visibility::OrSymbol,
|
|
16
21
|
request_options: Handinger::RequestOptions::OrHash
|
|
17
|
-
).returns(Handinger::
|
|
18
|
-
end
|
|
19
|
-
def create(input:, budget: nil, stream: nil, request_options: {})
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
# Retrieve the current worker state. Pass stream=true or request text/event-stream
|
|
23
|
-
# to subscribe to updates.
|
|
24
|
-
sig do
|
|
25
|
-
params(
|
|
26
|
-
worker_id: String,
|
|
27
|
-
stream: T::Boolean,
|
|
28
|
-
request_options: Handinger::RequestOptions::OrHash
|
|
29
|
-
).returns(Handinger::Worker)
|
|
22
|
+
).returns(Handinger::Models::WorkerCreateResponse)
|
|
30
23
|
end
|
|
31
|
-
def
|
|
32
|
-
#
|
|
33
|
-
|
|
34
|
-
#
|
|
35
|
-
|
|
24
|
+
def create(
|
|
25
|
+
# Persistent system prompt the worker uses for every task it runs.
|
|
26
|
+
instructions: nil,
|
|
27
|
+
# Optional JSON Schema (Draft-07) describing the structured object the worker must
|
|
28
|
+
# produce. When set, every task response is validated against the schema and
|
|
29
|
+
# exposed as `structuredOutput`.
|
|
30
|
+
output_schema: nil,
|
|
31
|
+
# Natural-language description of the worker to use for AI-generated instructions
|
|
32
|
+
# when `instructions` is omitted.
|
|
33
|
+
prompt: nil,
|
|
34
|
+
# Short one-line description of the worker's purpose. Auto-generated when omitted
|
|
35
|
+
# and a `prompt` is provided.
|
|
36
|
+
summary: nil,
|
|
37
|
+
# Optional display name. When omitted, Handinger assigns a random dog-themed name.
|
|
38
|
+
title: nil,
|
|
39
|
+
# `public` (default) is visible to all org members. `private` is only visible to
|
|
40
|
+
# invited members.
|
|
41
|
+
visibility: nil,
|
|
36
42
|
request_options: {}
|
|
37
43
|
)
|
|
38
44
|
end
|
|
39
45
|
|
|
40
|
-
#
|
|
46
|
+
# Retrieve the current worker state and messages from its most recent task.
|
|
47
|
+
# Returns a JSON worker object by default, or a server-sent event stream when
|
|
48
|
+
# `stream=true`.
|
|
41
49
|
sig do
|
|
42
50
|
params(
|
|
43
51
|
worker_id: String,
|
|
44
|
-
|
|
45
|
-
budget: Handinger::CreateWorker::Budget::OrSymbol,
|
|
46
|
-
stream: T::Boolean,
|
|
52
|
+
stream: Handinger::WorkerRetrieveParams::Stream::OrSymbol,
|
|
47
53
|
request_options: Handinger::RequestOptions::OrHash
|
|
48
54
|
).returns(Handinger::Worker)
|
|
49
55
|
end
|
|
50
|
-
def
|
|
56
|
+
def retrieve(
|
|
51
57
|
# Worker id returned by the create worker endpoint.
|
|
52
58
|
worker_id,
|
|
53
|
-
|
|
54
|
-
|
|
59
|
+
# Set to "true" to receive a server-sent event stream that replays all stored
|
|
60
|
+
# messages and then continues with live chunks from the active task (if any)
|
|
61
|
+
# before closing.
|
|
55
62
|
stream: nil,
|
|
56
63
|
request_options: {}
|
|
57
64
|
)
|
|
@@ -62,7 +69,7 @@ module Handinger
|
|
|
62
69
|
params(
|
|
63
70
|
worker_id: String,
|
|
64
71
|
request_options: Handinger::RequestOptions::OrHash
|
|
65
|
-
).returns(
|
|
72
|
+
).returns(Handinger::Models::WorkerRetrieveEmailResponse)
|
|
66
73
|
end
|
|
67
74
|
def retrieve_email(
|
|
68
75
|
# Worker id returned by the create worker endpoint.
|
|
@@ -71,38 +78,6 @@ module Handinger
|
|
|
71
78
|
)
|
|
72
79
|
end
|
|
73
80
|
|
|
74
|
-
# Retrieve a file published from a worker workspace. The runtime route accepts
|
|
75
|
-
# nested paths after /files/.
|
|
76
|
-
sig do
|
|
77
|
-
params(
|
|
78
|
-
file_path: String,
|
|
79
|
-
worker_id: String,
|
|
80
|
-
request_options: Handinger::RequestOptions::OrHash
|
|
81
|
-
).returns(StringIO)
|
|
82
|
-
end
|
|
83
|
-
def retrieve_file(
|
|
84
|
-
# Workspace file path after /files. URL-encode slashes for nested paths.
|
|
85
|
-
file_path,
|
|
86
|
-
# Worker id returned by the create worker endpoint.
|
|
87
|
-
worker_id:,
|
|
88
|
-
request_options: {}
|
|
89
|
-
)
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
# Subscribe to a worker using server-sent events.
|
|
93
|
-
sig do
|
|
94
|
-
params(
|
|
95
|
-
worker_id: String,
|
|
96
|
-
request_options: Handinger::RequestOptions::OrHash
|
|
97
|
-
).returns(Handinger::Internal::Stream[String])
|
|
98
|
-
end
|
|
99
|
-
def stream_updates_streaming(
|
|
100
|
-
# Worker id returned by the create worker endpoint.
|
|
101
|
-
worker_id,
|
|
102
|
-
request_options: {}
|
|
103
|
-
)
|
|
104
|
-
end
|
|
105
|
-
|
|
106
81
|
# @api private
|
|
107
82
|
sig { params(client: Handinger::Client).returns(T.attached_class) }
|
|
108
83
|
def self.new(client:)
|
data/sig/handinger/client.rbs
CHANGED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module Handinger
|
|
2
|
+
module Models
|
|
3
|
+
type create_task = { worker_id: String, task_id: String }
|
|
4
|
+
|
|
5
|
+
class CreateTask < Handinger::Models::CreateWorker
|
|
6
|
+
def worker_id: -> String
|
|
7
|
+
|
|
8
|
+
def worker_id=: (String _) -> String
|
|
9
|
+
|
|
10
|
+
def task_id: -> String?
|
|
11
|
+
|
|
12
|
+
def task_id=: (String _) -> String
|
|
13
|
+
|
|
14
|
+
def initialize: (worker_id: String, ?task_id: String) -> void
|
|
15
|
+
|
|
16
|
+
def to_hash: -> { worker_id: String, task_id: String }
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|