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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +35 -0
- data/README.md +19 -20
- data/SECURITY.md +4 -0
- 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/delete_task_response.rb +16 -0
- data/lib/handinger/models/delete_worker_response.rb +16 -0
- data/lib/handinger/models/task.rb +119 -0
- data/lib/handinger/models/task_create_params.rb +14 -0
- data/lib/handinger/models/task_delete_params.rb +20 -0
- data/lib/handinger/models/task_retrieve_params.rb +20 -0
- data/lib/handinger/models/task_with_turns.rb +113 -0
- data/lib/handinger/models/update_worker.rb +71 -0
- data/lib/handinger/models/worker.rb +9 -84
- data/lib/handinger/models/{worker_stream_updates_params.rb → worker_delete_params.rb} +2 -2
- 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/worker_template.rb +84 -0
- data/lib/handinger/models/{worker_continue_params.rb → worker_update_params.rb} +2 -2
- data/lib/handinger/models.rb +23 -5
- data/lib/handinger/resources/tasks.rb +98 -0
- data/lib/handinger/resources/workers.rb +66 -68
- data/lib/handinger/version.rb +1 -1
- data/lib/handinger.rb +13 -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/delete_task_response.rbi +23 -0
- data/rbi/handinger/models/delete_worker_response.rbi +23 -0
- data/rbi/handinger/models/task.rbi +160 -0
- data/rbi/handinger/models/task_create_params.rbi +27 -0
- data/rbi/handinger/models/task_delete_params.rbi +35 -0
- data/rbi/handinger/models/task_retrieve_params.rbi +35 -0
- data/rbi/handinger/models/task_with_turns.rbi +149 -0
- data/rbi/handinger/models/update_worker.rbi +112 -0
- data/rbi/handinger/models/worker.rbi +10 -120
- data/rbi/handinger/models/{worker_stream_updates_params.rbi → worker_delete_params.rbi} +2 -5
- 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/worker_template.rbi +110 -0
- data/rbi/handinger/models/{worker_continue_params.rbi → worker_update_params.rbi} +2 -2
- data/rbi/handinger/models.rbi +23 -5
- data/rbi/handinger/resources/tasks.rbi +86 -0
- data/rbi/handinger/resources/workers.rbi +68 -43
- 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/delete_task_response.rbs +13 -0
- data/sig/handinger/models/delete_worker_response.rbs +13 -0
- data/sig/handinger/models/task.rbs +114 -0
- data/sig/handinger/models/task_create_params.rbs +15 -0
- data/sig/handinger/models/task_delete_params.rbs +23 -0
- data/sig/handinger/models/task_retrieve_params.rbs +23 -0
- data/sig/handinger/models/task_with_turns.rbs +104 -0
- data/sig/handinger/models/update_worker.rbs +61 -0
- data/sig/handinger/models/worker.rbs +7 -89
- data/sig/handinger/models/{worker_stream_updates_params.rbs → worker_delete_params.rbs} +2 -2
- 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/worker_template.rbs +76 -0
- data/sig/handinger/models/{worker_continue_params.rbs → worker_update_params.rbs} +2 -2
- data/sig/handinger/models.rbs +23 -5
- data/sig/handinger/resources/tasks.rbs +29 -0
- data/sig/handinger/resources/workers.rbs +19 -20
- metadata +42 -21
- 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_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_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_retrieve_file_params.rbs +0 -28
- data/sig/handinger/models/worker_stream_updates_response.rbs +0 -5
|
@@ -2,16 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
module Handinger
|
|
4
4
|
module Models
|
|
5
|
-
class
|
|
5
|
+
class WorkerDeleteParams < 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(
|
|
12
|
-
Handinger::WorkerStreamUpdatesParams,
|
|
13
|
-
Handinger::Internal::AnyHash
|
|
14
|
-
)
|
|
11
|
+
T.any(Handinger::WorkerDeleteParams, Handinger::Internal::AnyHash)
|
|
15
12
|
end
|
|
16
13
|
|
|
17
14
|
sig { returns(String) }
|
|
@@ -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
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Handinger
|
|
4
|
+
module Models
|
|
5
|
+
class WorkerTemplate < Handinger::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Handinger::WorkerTemplate, Handinger::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
sig { returns(String) }
|
|
12
|
+
attr_accessor :id
|
|
13
|
+
|
|
14
|
+
sig { returns(T.nilable(String)) }
|
|
15
|
+
attr_accessor :created_at
|
|
16
|
+
|
|
17
|
+
sig { returns(String) }
|
|
18
|
+
attr_accessor :instructions
|
|
19
|
+
|
|
20
|
+
sig { returns(String) }
|
|
21
|
+
attr_accessor :organization_id
|
|
22
|
+
|
|
23
|
+
sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
|
|
24
|
+
attr_accessor :output_schema
|
|
25
|
+
|
|
26
|
+
sig { returns(String) }
|
|
27
|
+
attr_accessor :summary
|
|
28
|
+
|
|
29
|
+
sig { returns(String) }
|
|
30
|
+
attr_accessor :title
|
|
31
|
+
|
|
32
|
+
sig { returns(T.nilable(String)) }
|
|
33
|
+
attr_accessor :updated_at
|
|
34
|
+
|
|
35
|
+
sig { returns(String) }
|
|
36
|
+
attr_accessor :user_id
|
|
37
|
+
|
|
38
|
+
sig { returns(Handinger::WorkerTemplate::Visibility::TaggedSymbol) }
|
|
39
|
+
attr_accessor :visibility
|
|
40
|
+
|
|
41
|
+
sig do
|
|
42
|
+
params(
|
|
43
|
+
id: String,
|
|
44
|
+
created_at: T.nilable(String),
|
|
45
|
+
instructions: String,
|
|
46
|
+
organization_id: String,
|
|
47
|
+
output_schema: T.nilable(T::Hash[Symbol, T.anything]),
|
|
48
|
+
summary: String,
|
|
49
|
+
title: String,
|
|
50
|
+
updated_at: T.nilable(String),
|
|
51
|
+
user_id: String,
|
|
52
|
+
visibility: Handinger::WorkerTemplate::Visibility::OrSymbol
|
|
53
|
+
).returns(T.attached_class)
|
|
54
|
+
end
|
|
55
|
+
def self.new(
|
|
56
|
+
id:,
|
|
57
|
+
created_at:,
|
|
58
|
+
instructions:,
|
|
59
|
+
organization_id:,
|
|
60
|
+
output_schema:,
|
|
61
|
+
summary:,
|
|
62
|
+
title:,
|
|
63
|
+
updated_at:,
|
|
64
|
+
user_id:,
|
|
65
|
+
visibility:
|
|
66
|
+
)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
sig do
|
|
70
|
+
override.returns(
|
|
71
|
+
{
|
|
72
|
+
id: String,
|
|
73
|
+
created_at: T.nilable(String),
|
|
74
|
+
instructions: String,
|
|
75
|
+
organization_id: String,
|
|
76
|
+
output_schema: T.nilable(T::Hash[Symbol, T.anything]),
|
|
77
|
+
summary: String,
|
|
78
|
+
title: String,
|
|
79
|
+
updated_at: T.nilable(String),
|
|
80
|
+
user_id: String,
|
|
81
|
+
visibility: Handinger::WorkerTemplate::Visibility::TaggedSymbol
|
|
82
|
+
}
|
|
83
|
+
)
|
|
84
|
+
end
|
|
85
|
+
def to_hash
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
module Visibility
|
|
89
|
+
extend Handinger::Internal::Type::Enum
|
|
90
|
+
|
|
91
|
+
TaggedSymbol =
|
|
92
|
+
T.type_alias { T.all(Symbol, Handinger::WorkerTemplate::Visibility) }
|
|
93
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
94
|
+
|
|
95
|
+
PUBLIC =
|
|
96
|
+
T.let(:public, Handinger::WorkerTemplate::Visibility::TaggedSymbol)
|
|
97
|
+
PRIVATE =
|
|
98
|
+
T.let(:private, Handinger::WorkerTemplate::Visibility::TaggedSymbol)
|
|
99
|
+
|
|
100
|
+
sig do
|
|
101
|
+
override.returns(
|
|
102
|
+
T::Array[Handinger::WorkerTemplate::Visibility::TaggedSymbol]
|
|
103
|
+
)
|
|
104
|
+
end
|
|
105
|
+
def self.values
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
end
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
module Handinger
|
|
4
4
|
module Models
|
|
5
|
-
class
|
|
5
|
+
class WorkerUpdateParams < Handinger::Models::UpdateWorker
|
|
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::WorkerUpdateParams, Handinger::Internal::AnyHash)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
sig { returns(String) }
|
data/rbi/handinger/models.rbi
CHANGED
|
@@ -1,21 +1,39 @@
|
|
|
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
|
+
DeleteTaskResponse = Handinger::Models::DeleteTaskResponse
|
|
9
|
+
|
|
10
|
+
DeleteWorkerResponse = Handinger::Models::DeleteWorkerResponse
|
|
11
|
+
|
|
12
|
+
Task = Handinger::Models::Task
|
|
13
|
+
|
|
14
|
+
TaskCreateParams = Handinger::Models::TaskCreateParams
|
|
15
|
+
|
|
16
|
+
TaskDeleteParams = Handinger::Models::TaskDeleteParams
|
|
17
|
+
|
|
18
|
+
TaskRetrieveParams = Handinger::Models::TaskRetrieveParams
|
|
7
19
|
|
|
8
|
-
|
|
20
|
+
TaskWithTurns = Handinger::Models::TaskWithTurns
|
|
21
|
+
|
|
22
|
+
UpdateWorker = Handinger::Models::UpdateWorker
|
|
23
|
+
|
|
24
|
+
Worker = Handinger::Models::Worker
|
|
9
25
|
|
|
10
26
|
WorkerCreateParams = Handinger::Models::WorkerCreateParams
|
|
11
27
|
|
|
12
|
-
|
|
28
|
+
WorkerDeleteParams = Handinger::Models::WorkerDeleteParams
|
|
13
29
|
|
|
14
|
-
|
|
30
|
+
WorkerRetrieveEmailParams = Handinger::Models::WorkerRetrieveEmailParams
|
|
15
31
|
|
|
16
32
|
WorkerRetrieveParams = Handinger::Models::WorkerRetrieveParams
|
|
17
33
|
|
|
18
34
|
Workers = Handinger::Models::Workers
|
|
19
35
|
|
|
20
|
-
|
|
36
|
+
WorkerTemplate = Handinger::Models::WorkerTemplate
|
|
37
|
+
|
|
38
|
+
WorkerUpdateParams = Handinger::Models::WorkerUpdateParams
|
|
21
39
|
end
|
|
@@ -0,0 +1,86 @@
|
|
|
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 a `taskId` of a prior task to
|
|
8
|
+
# add a follow-up turn instead of starting a fresh task. Send
|
|
9
|
+
# `multipart/form-data` to attach files; the bytes are bootstrapped into the
|
|
10
|
+
# worker's workspace before the task starts.
|
|
11
|
+
sig do
|
|
12
|
+
params(
|
|
13
|
+
worker_id: String,
|
|
14
|
+
instructions: String,
|
|
15
|
+
output_schema: T::Hash[Symbol, T.anything],
|
|
16
|
+
prompt: String,
|
|
17
|
+
summary: String,
|
|
18
|
+
task_id: String,
|
|
19
|
+
title: String,
|
|
20
|
+
visibility: Handinger::CreateTask::Visibility::OrSymbol,
|
|
21
|
+
request_options: Handinger::RequestOptions::OrHash
|
|
22
|
+
).returns(Handinger::Worker)
|
|
23
|
+
end
|
|
24
|
+
def create(
|
|
25
|
+
# Worker id the task belongs to.
|
|
26
|
+
worker_id:,
|
|
27
|
+
# Persistent system prompt the worker uses for every task it runs.
|
|
28
|
+
instructions: nil,
|
|
29
|
+
# Optional JSON Schema (Draft-07) describing the structured object the worker must
|
|
30
|
+
# produce. When set, every task response is validated against the schema and
|
|
31
|
+
# exposed as `structuredOutput`.
|
|
32
|
+
output_schema: nil,
|
|
33
|
+
# Natural-language description of the worker to use for AI-generated instructions
|
|
34
|
+
# when `instructions` is omitted.
|
|
35
|
+
prompt: nil,
|
|
36
|
+
# Short one-line description of the worker's purpose. Auto-generated when omitted
|
|
37
|
+
# and a `prompt` is provided.
|
|
38
|
+
summary: nil,
|
|
39
|
+
# Optional client-provided task id. Reuse this id to add turns to an existing
|
|
40
|
+
# task.
|
|
41
|
+
task_id: nil,
|
|
42
|
+
# Optional display name. When omitted, Handinger assigns a random dog-themed name.
|
|
43
|
+
title: nil,
|
|
44
|
+
# `public` (default) is visible to all org members. `private` is only visible to
|
|
45
|
+
# invited members.
|
|
46
|
+
visibility: nil,
|
|
47
|
+
request_options: {}
|
|
48
|
+
)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# Retrieve a single task and its individual turns.
|
|
52
|
+
sig do
|
|
53
|
+
params(
|
|
54
|
+
task_id: String,
|
|
55
|
+
request_options: Handinger::RequestOptions::OrHash
|
|
56
|
+
).returns(Handinger::TaskWithTurns)
|
|
57
|
+
end
|
|
58
|
+
def retrieve(
|
|
59
|
+
# Task id returned by the create task endpoint.
|
|
60
|
+
task_id,
|
|
61
|
+
request_options: {}
|
|
62
|
+
)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Archive a task so it stops appearing in `GET /tasks` results. Turns and files
|
|
66
|
+
# are retained for audit purposes. Only the worker creator can archive a task.
|
|
67
|
+
sig do
|
|
68
|
+
params(
|
|
69
|
+
task_id: String,
|
|
70
|
+
request_options: Handinger::RequestOptions::OrHash
|
|
71
|
+
).returns(Handinger::DeleteTaskResponse)
|
|
72
|
+
end
|
|
73
|
+
def delete(
|
|
74
|
+
# Task id returned by the create task endpoint.
|
|
75
|
+
task_id,
|
|
76
|
+
request_options: {}
|
|
77
|
+
)
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# @api private
|
|
81
|
+
sig { params(client: Handinger::Client).returns(T.attached_class) }
|
|
82
|
+
def self.new(client:)
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
@@ -2,101 +2,126 @@
|
|
|
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::WorkerTemplate)
|
|
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
|
)
|
|
58
65
|
end
|
|
59
66
|
|
|
60
|
-
#
|
|
67
|
+
# Update a worker's instructions, title, summary, visibility, or output schema.
|
|
68
|
+
# Only the fields you send are changed; omitted fields keep their current values.
|
|
69
|
+
# Only the worker creator can update a worker.
|
|
61
70
|
sig do
|
|
62
71
|
params(
|
|
63
72
|
worker_id: String,
|
|
73
|
+
instructions: String,
|
|
74
|
+
output_schema: T.nilable(T::Hash[Symbol, T.anything]),
|
|
75
|
+
summary: String,
|
|
76
|
+
title: String,
|
|
77
|
+
visibility: Handinger::UpdateWorker::Visibility::OrSymbol,
|
|
64
78
|
request_options: Handinger::RequestOptions::OrHash
|
|
65
|
-
).returns(
|
|
79
|
+
).returns(Handinger::WorkerTemplate)
|
|
66
80
|
end
|
|
67
|
-
def
|
|
81
|
+
def update(
|
|
68
82
|
# Worker id returned by the create worker endpoint.
|
|
69
83
|
worker_id,
|
|
84
|
+
# Replaces the persistent system prompt. Subsequent tasks pick up the new
|
|
85
|
+
# instructions immediately; in-flight tasks keep using the previous version.
|
|
86
|
+
instructions: nil,
|
|
87
|
+
# Replace the worker's structured output schema. Pass `null` to clear it and
|
|
88
|
+
# return to free-form text responses.
|
|
89
|
+
output_schema: nil,
|
|
90
|
+
# Replaces the worker's short one-line summary.
|
|
91
|
+
summary: nil,
|
|
92
|
+
# New display name for the worker.
|
|
93
|
+
title: nil,
|
|
94
|
+
# Change visibility between `public` (any org member can run tasks) and `private`
|
|
95
|
+
# (only invited members).
|
|
96
|
+
visibility: nil,
|
|
70
97
|
request_options: {}
|
|
71
98
|
)
|
|
72
99
|
end
|
|
73
100
|
|
|
74
|
-
#
|
|
75
|
-
#
|
|
101
|
+
# Permanently delete a worker template along with its tasks, turns, files,
|
|
102
|
+
# schedules, and integrations. This action is not reversible. Only the worker
|
|
103
|
+
# creator can delete a worker.
|
|
76
104
|
sig do
|
|
77
105
|
params(
|
|
78
|
-
file_path: String,
|
|
79
106
|
worker_id: String,
|
|
80
107
|
request_options: Handinger::RequestOptions::OrHash
|
|
81
|
-
).returns(
|
|
108
|
+
).returns(Handinger::DeleteWorkerResponse)
|
|
82
109
|
end
|
|
83
|
-
def
|
|
84
|
-
# Workspace file path after /files. URL-encode slashes for nested paths.
|
|
85
|
-
file_path,
|
|
110
|
+
def delete(
|
|
86
111
|
# Worker id returned by the create worker endpoint.
|
|
87
|
-
worker_id
|
|
112
|
+
worker_id,
|
|
88
113
|
request_options: {}
|
|
89
114
|
)
|
|
90
115
|
end
|
|
91
116
|
|
|
92
|
-
#
|
|
117
|
+
# Retrieve the inbound email address for a worker.
|
|
93
118
|
sig do
|
|
94
119
|
params(
|
|
95
120
|
worker_id: String,
|
|
96
121
|
request_options: Handinger::RequestOptions::OrHash
|
|
97
|
-
).returns(Handinger::
|
|
122
|
+
).returns(Handinger::Models::WorkerRetrieveEmailResponse)
|
|
98
123
|
end
|
|
99
|
-
def
|
|
124
|
+
def retrieve_email(
|
|
100
125
|
# Worker id returned by the create worker endpoint.
|
|
101
126
|
worker_id,
|
|
102
127
|
request_options: {}
|
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
|
|
@@ -2,47 +2,68 @@ module Handinger
|
|
|
2
2
|
module Models
|
|
3
3
|
type create_worker =
|
|
4
4
|
{
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
instructions: String,
|
|
6
|
+
output_schema: ::Hash[Symbol, top],
|
|
7
|
+
prompt: String,
|
|
8
|
+
summary: String,
|
|
9
|
+
title: String,
|
|
10
|
+
visibility: Handinger::Models::CreateWorker::visibility
|
|
8
11
|
}
|
|
9
12
|
|
|
10
13
|
class CreateWorker < Handinger::Internal::Type::BaseModel
|
|
11
|
-
|
|
14
|
+
attr_reader instructions: String?
|
|
12
15
|
|
|
13
|
-
|
|
16
|
+
def instructions=: (String) -> String
|
|
14
17
|
|
|
15
|
-
|
|
16
|
-
Handinger::Models::CreateWorker::budget
|
|
17
|
-
) -> Handinger::Models::CreateWorker::budget
|
|
18
|
+
attr_reader output_schema: ::Hash[Symbol, top]?
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
def output_schema=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top]
|
|
20
21
|
|
|
21
|
-
|
|
22
|
+
attr_reader prompt: String?
|
|
23
|
+
|
|
24
|
+
def prompt=: (String) -> String
|
|
25
|
+
|
|
26
|
+
attr_reader summary: String?
|
|
27
|
+
|
|
28
|
+
def summary=: (String) -> String
|
|
29
|
+
|
|
30
|
+
attr_reader title: String?
|
|
31
|
+
|
|
32
|
+
def title=: (String) -> String
|
|
33
|
+
|
|
34
|
+
attr_reader visibility: Handinger::Models::CreateWorker::visibility?
|
|
35
|
+
|
|
36
|
+
def visibility=: (
|
|
37
|
+
Handinger::Models::CreateWorker::visibility
|
|
38
|
+
) -> Handinger::Models::CreateWorker::visibility
|
|
22
39
|
|
|
23
40
|
def initialize: (
|
|
24
|
-
|
|
25
|
-
?
|
|
26
|
-
?
|
|
41
|
+
?instructions: String,
|
|
42
|
+
?output_schema: ::Hash[Symbol, top],
|
|
43
|
+
?prompt: String,
|
|
44
|
+
?summary: String,
|
|
45
|
+
?title: String,
|
|
46
|
+
?visibility: Handinger::Models::CreateWorker::visibility
|
|
27
47
|
) -> void
|
|
28
48
|
|
|
29
49
|
def to_hash: -> {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
50
|
+
instructions: String,
|
|
51
|
+
output_schema: ::Hash[Symbol, top],
|
|
52
|
+
prompt: String,
|
|
53
|
+
summary: String,
|
|
54
|
+
title: String,
|
|
55
|
+
visibility: Handinger::Models::CreateWorker::visibility
|
|
33
56
|
}
|
|
34
57
|
|
|
35
|
-
type
|
|
58
|
+
type visibility = :public | :private
|
|
36
59
|
|
|
37
|
-
module
|
|
60
|
+
module Visibility
|
|
38
61
|
extend Handinger::Internal::Type::Enum
|
|
39
62
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
HIGH: :high
|
|
43
|
-
UNLIMITED: :unlimited
|
|
63
|
+
PUBLIC: :public
|
|
64
|
+
PRIVATE: :private
|
|
44
65
|
|
|
45
|
-
def self?.values: -> ::Array[Handinger::Models::CreateWorker::
|
|
66
|
+
def self?.values: -> ::Array[Handinger::Models::CreateWorker::visibility]
|
|
46
67
|
end
|
|
47
68
|
end
|
|
48
69
|
end
|