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,42 +2,60 @@
|
|
|
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
|
# @return [Handinger::Resources::Workers::Schedules]
|
|
8
9
|
attr_reader :schedules
|
|
9
10
|
|
|
10
|
-
#
|
|
11
|
+
# Some parameter documentations has been truncated, see
|
|
12
|
+
# {Handinger::Models::WorkerCreateParams} for more details.
|
|
11
13
|
#
|
|
12
|
-
#
|
|
14
|
+
# Create a new worker. The worker is a reusable agent template; tasks are runs
|
|
15
|
+
# against this template. Use `POST /tasks` to actually run the agent.
|
|
16
|
+
#
|
|
17
|
+
# @overload create(instructions: nil, output_schema: nil, prompt: nil, summary: nil, title: nil, visibility: nil, request_options: {})
|
|
18
|
+
#
|
|
19
|
+
# @param instructions [String] Persistent system prompt the worker uses for every task it runs.
|
|
20
|
+
#
|
|
21
|
+
# @param output_schema [Hash{Symbol=>Object}] Optional JSON Schema (Draft-07) describing the structured object the worker must
|
|
22
|
+
#
|
|
23
|
+
# @param prompt [String] Natural-language description of the worker to use for AI-generated instructions
|
|
24
|
+
#
|
|
25
|
+
# @param summary [String] Short one-line description of the worker's purpose. Auto-generated when omitted
|
|
26
|
+
#
|
|
27
|
+
# @param title [String] Optional display name. When omitted, Handinger assigns a random dog-themed name.
|
|
28
|
+
#
|
|
29
|
+
# @param visibility [Symbol, Handinger::Models::CreateWorker::Visibility] `public` (default) is visible to all org members. `private` is only visible to i
|
|
13
30
|
#
|
|
14
|
-
# @param input [String]
|
|
15
|
-
# @param budget [Symbol, Handinger::Models::CreateWorker::Budget]
|
|
16
|
-
# @param stream [Boolean]
|
|
17
31
|
# @param request_options [Handinger::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
18
32
|
#
|
|
19
|
-
# @return [Handinger::Models::
|
|
33
|
+
# @return [Handinger::Models::WorkerTemplate]
|
|
20
34
|
#
|
|
21
35
|
# @see Handinger::Models::WorkerCreateParams
|
|
22
|
-
def create(params)
|
|
36
|
+
def create(params = {})
|
|
23
37
|
parsed, options = Handinger::WorkerCreateParams.dump_request(params)
|
|
24
38
|
@client.request(
|
|
25
39
|
method: :post,
|
|
26
40
|
path: "api/workers",
|
|
27
41
|
body: parsed,
|
|
28
|
-
model: Handinger::
|
|
42
|
+
model: Handinger::WorkerTemplate,
|
|
29
43
|
options: options
|
|
30
44
|
)
|
|
31
45
|
end
|
|
32
46
|
|
|
33
|
-
#
|
|
34
|
-
#
|
|
47
|
+
# Some parameter documentations has been truncated, see
|
|
48
|
+
# {Handinger::Models::WorkerRetrieveParams} for more details.
|
|
49
|
+
#
|
|
50
|
+
# Retrieve the current worker state and messages from its most recent task.
|
|
51
|
+
# Returns a JSON worker object by default, or a server-sent event stream when
|
|
52
|
+
# `stream=true`.
|
|
35
53
|
#
|
|
36
54
|
# @overload retrieve(worker_id, stream: nil, request_options: {})
|
|
37
55
|
#
|
|
38
56
|
# @param worker_id [String] Worker id returned by the create worker endpoint.
|
|
39
57
|
#
|
|
40
|
-
# @param stream [
|
|
58
|
+
# @param stream [Symbol, Handinger::Models::WorkerRetrieveParams::Stream] Set to "true" to receive a server-sent event stream that replays all stored mess
|
|
41
59
|
#
|
|
42
60
|
# @param request_options [Handinger::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
43
61
|
#
|
|
@@ -56,101 +74,81 @@ module Handinger
|
|
|
56
74
|
)
|
|
57
75
|
end
|
|
58
76
|
|
|
59
|
-
#
|
|
77
|
+
# Some parameter documentations has been truncated, see
|
|
78
|
+
# {Handinger::Models::WorkerUpdateParams} for more details.
|
|
79
|
+
#
|
|
80
|
+
# Update a worker's instructions, title, summary, visibility, or output schema.
|
|
81
|
+
# Only the fields you send are changed; omitted fields keep their current values.
|
|
82
|
+
# Only the worker creator can update a worker.
|
|
60
83
|
#
|
|
61
|
-
# @overload
|
|
84
|
+
# @overload update(worker_id, instructions: nil, output_schema: nil, summary: nil, title: nil, visibility: nil, request_options: {})
|
|
62
85
|
#
|
|
63
86
|
# @param worker_id [String] Worker id returned by the create worker endpoint.
|
|
64
87
|
#
|
|
65
|
-
# @param
|
|
88
|
+
# @param instructions [String] Replaces the persistent system prompt. Subsequent tasks pick up the new instruct
|
|
66
89
|
#
|
|
67
|
-
# @param
|
|
90
|
+
# @param output_schema [Hash{Symbol=>Object}, nil] Replace the worker's structured output schema. Pass `null` to clear it and retur
|
|
68
91
|
#
|
|
69
|
-
# @param
|
|
92
|
+
# @param summary [String] Replaces the worker's short one-line summary.
|
|
93
|
+
#
|
|
94
|
+
# @param title [String] New display name for the worker.
|
|
95
|
+
#
|
|
96
|
+
# @param visibility [Symbol, Handinger::Models::UpdateWorker::Visibility] Change visibility between `public` (any org member can run tasks) and `private`
|
|
70
97
|
#
|
|
71
98
|
# @param request_options [Handinger::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
72
99
|
#
|
|
73
|
-
# @return [Handinger::Models::
|
|
100
|
+
# @return [Handinger::Models::WorkerTemplate]
|
|
74
101
|
#
|
|
75
|
-
# @see Handinger::Models::
|
|
76
|
-
def
|
|
77
|
-
parsed, options = Handinger::
|
|
102
|
+
# @see Handinger::Models::WorkerUpdateParams
|
|
103
|
+
def update(worker_id, params = {})
|
|
104
|
+
parsed, options = Handinger::WorkerUpdateParams.dump_request(params)
|
|
78
105
|
@client.request(
|
|
79
|
-
method: :
|
|
106
|
+
method: :patch,
|
|
80
107
|
path: ["api/workers/%1$s", worker_id],
|
|
81
108
|
body: parsed,
|
|
82
|
-
model: Handinger::
|
|
109
|
+
model: Handinger::WorkerTemplate,
|
|
83
110
|
options: options
|
|
84
111
|
)
|
|
85
112
|
end
|
|
86
113
|
|
|
87
|
-
#
|
|
114
|
+
# Permanently delete a worker template along with its tasks, turns, files,
|
|
115
|
+
# schedules, and integrations. This action is not reversible. Only the worker
|
|
116
|
+
# creator can delete a worker.
|
|
88
117
|
#
|
|
89
|
-
# @overload
|
|
118
|
+
# @overload delete(worker_id, request_options: {})
|
|
90
119
|
#
|
|
91
120
|
# @param worker_id [String] Worker id returned by the create worker endpoint.
|
|
92
121
|
#
|
|
93
122
|
# @param request_options [Handinger::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
94
123
|
#
|
|
95
|
-
# @return [
|
|
124
|
+
# @return [Handinger::Models::DeleteWorkerResponse]
|
|
96
125
|
#
|
|
97
|
-
# @see Handinger::Models::
|
|
98
|
-
def
|
|
126
|
+
# @see Handinger::Models::WorkerDeleteParams
|
|
127
|
+
def delete(worker_id, params = {})
|
|
99
128
|
@client.request(
|
|
100
|
-
method: :
|
|
101
|
-
path: ["api/workers/%1$s
|
|
102
|
-
model:
|
|
129
|
+
method: :delete,
|
|
130
|
+
path: ["api/workers/%1$s", worker_id],
|
|
131
|
+
model: Handinger::DeleteWorkerResponse,
|
|
103
132
|
options: params[:request_options]
|
|
104
133
|
)
|
|
105
134
|
end
|
|
106
135
|
|
|
107
|
-
# Retrieve
|
|
108
|
-
# nested paths after /files/.
|
|
109
|
-
#
|
|
110
|
-
# @overload retrieve_file(file_path, worker_id:, request_options: {})
|
|
111
|
-
#
|
|
112
|
-
# @param file_path [String] Workspace file path after /files. URL-encode slashes for nested paths.
|
|
113
|
-
#
|
|
114
|
-
# @param worker_id [String] Worker id returned by the create worker endpoint.
|
|
115
|
-
#
|
|
116
|
-
# @param request_options [Handinger::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
117
|
-
#
|
|
118
|
-
# @return [StringIO]
|
|
119
|
-
#
|
|
120
|
-
# @see Handinger::Models::WorkerRetrieveFileParams
|
|
121
|
-
def retrieve_file(file_path, params)
|
|
122
|
-
parsed, options = Handinger::WorkerRetrieveFileParams.dump_request(params)
|
|
123
|
-
worker_id =
|
|
124
|
-
parsed.delete(:worker_id) do
|
|
125
|
-
raise ArgumentError.new("missing required path argument #{_1}")
|
|
126
|
-
end
|
|
127
|
-
@client.request(
|
|
128
|
-
method: :get,
|
|
129
|
-
path: ["api/workers/%1$s/files/%2$s", worker_id, file_path],
|
|
130
|
-
headers: {"accept" => "application/octet-stream"},
|
|
131
|
-
model: StringIO,
|
|
132
|
-
options: options
|
|
133
|
-
)
|
|
134
|
-
end
|
|
135
|
-
|
|
136
|
-
# Subscribe to a worker using server-sent events.
|
|
136
|
+
# Retrieve the inbound email address for a worker.
|
|
137
137
|
#
|
|
138
|
-
# @overload
|
|
138
|
+
# @overload retrieve_email(worker_id, request_options: {})
|
|
139
139
|
#
|
|
140
140
|
# @param worker_id [String] Worker id returned by the create worker endpoint.
|
|
141
141
|
#
|
|
142
142
|
# @param request_options [Handinger::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
143
143
|
#
|
|
144
|
-
# @return [Handinger::
|
|
144
|
+
# @return [Handinger::Models::WorkerRetrieveEmailResponse]
|
|
145
145
|
#
|
|
146
|
-
# @see Handinger::Models::
|
|
147
|
-
def
|
|
146
|
+
# @see Handinger::Models::WorkerRetrieveEmailParams
|
|
147
|
+
def retrieve_email(worker_id, params = {})
|
|
148
148
|
@client.request(
|
|
149
149
|
method: :get,
|
|
150
|
-
path: ["api/workers/%1$s/
|
|
151
|
-
|
|
152
|
-
stream: Handinger::Internal::Stream,
|
|
153
|
-
model: String,
|
|
150
|
+
path: ["api/workers/%1$s/email", worker_id],
|
|
151
|
+
model: Handinger::Models::WorkerRetrieveEmailResponse,
|
|
154
152
|
options: params[:request_options]
|
|
155
153
|
)
|
|
156
154
|
end
|
data/lib/handinger/version.rb
CHANGED
data/lib/handinger.rb
CHANGED
|
@@ -44,7 +44,6 @@ require_relative "handinger/internal/type/array_of"
|
|
|
44
44
|
require_relative "handinger/internal/type/hash_of"
|
|
45
45
|
require_relative "handinger/internal/type/base_model"
|
|
46
46
|
require_relative "handinger/internal/type/base_page"
|
|
47
|
-
require_relative "handinger/internal/type/base_stream"
|
|
48
47
|
require_relative "handinger/internal/type/request_parameters"
|
|
49
48
|
require_relative "handinger/internal"
|
|
50
49
|
require_relative "handinger/request_options"
|
|
@@ -53,14 +52,21 @@ require_relative "handinger/errors"
|
|
|
53
52
|
require_relative "handinger/internal/transport/base_client"
|
|
54
53
|
require_relative "handinger/internal/transport/pooled_net_requester"
|
|
55
54
|
require_relative "handinger/client"
|
|
56
|
-
require_relative "handinger/internal/stream"
|
|
57
55
|
require_relative "handinger/models/create_worker"
|
|
56
|
+
require_relative "handinger/models/create_task"
|
|
57
|
+
require_relative "handinger/models/update_worker"
|
|
58
|
+
require_relative "handinger/models/delete_task_response"
|
|
59
|
+
require_relative "handinger/models/delete_worker_response"
|
|
60
|
+
require_relative "handinger/models/task"
|
|
61
|
+
require_relative "handinger/models/task_create_params"
|
|
62
|
+
require_relative "handinger/models/task_delete_params"
|
|
63
|
+
require_relative "handinger/models/task_retrieve_params"
|
|
64
|
+
require_relative "handinger/models/task_with_turns"
|
|
58
65
|
require_relative "handinger/models/worker"
|
|
59
|
-
require_relative "handinger/models/worker_continue_params"
|
|
60
66
|
require_relative "handinger/models/worker_create_params"
|
|
67
|
+
require_relative "handinger/models/worker_delete_params"
|
|
61
68
|
require_relative "handinger/models/worker_retrieve_email_params"
|
|
62
69
|
require_relative "handinger/models/worker_retrieve_email_response"
|
|
63
|
-
require_relative "handinger/models/worker_retrieve_file_params"
|
|
64
70
|
require_relative "handinger/models/worker_retrieve_params"
|
|
65
71
|
require_relative "handinger/models/workers/schedule_cancel_params"
|
|
66
72
|
require_relative "handinger/models/workers/schedule_cancel_response"
|
|
@@ -68,8 +74,9 @@ require_relative "handinger/models/workers/schedule_create_params"
|
|
|
68
74
|
require_relative "handinger/models/workers/schedule_list_params"
|
|
69
75
|
require_relative "handinger/models/workers/schedule_list_response"
|
|
70
76
|
require_relative "handinger/models/workers/worker_schedule"
|
|
71
|
-
require_relative "handinger/models/
|
|
72
|
-
require_relative "handinger/models/
|
|
77
|
+
require_relative "handinger/models/worker_template"
|
|
78
|
+
require_relative "handinger/models/worker_update_params"
|
|
73
79
|
require_relative "handinger/models"
|
|
80
|
+
require_relative "handinger/resources/tasks"
|
|
74
81
|
require_relative "handinger/resources/workers"
|
|
75
82
|
require_relative "handinger/resources/workers/schedules"
|
data/rbi/handinger/client.rbi
CHANGED
|
@@ -13,9 +13,14 @@ module Handinger
|
|
|
13
13
|
sig { returns(String) }
|
|
14
14
|
attr_reader :api_key
|
|
15
15
|
|
|
16
|
+
# Create, retrieve, and manage agent worker templates.
|
|
16
17
|
sig { returns(Handinger::Resources::Workers) }
|
|
17
18
|
attr_reader :workers
|
|
18
19
|
|
|
20
|
+
# Run and inspect tasks against a worker.
|
|
21
|
+
sig { returns(Handinger::Resources::Tasks) }
|
|
22
|
+
attr_reader :tasks
|
|
23
|
+
|
|
19
24
|
# @api private
|
|
20
25
|
sig { override.returns(T::Hash[String, String]) }
|
|
21
26
|
private def auth_headers
|
|
@@ -49,15 +49,7 @@ module Handinger
|
|
|
49
49
|
]
|
|
50
50
|
]
|
|
51
51
|
),
|
|
52
|
-
stream:
|
|
53
|
-
T.nilable(
|
|
54
|
-
T::Class[
|
|
55
|
-
Handinger::Internal::Type::BaseStream[
|
|
56
|
-
T.anything,
|
|
57
|
-
Handinger::Internal::Type::BaseModel
|
|
58
|
-
]
|
|
59
|
-
]
|
|
60
|
-
),
|
|
52
|
+
stream: T.nilable(T::Class[T.anything]),
|
|
61
53
|
model: T.nilable(Handinger::Internal::Type::Converter::Input),
|
|
62
54
|
options: T.nilable(Handinger::RequestOptions::OrHash)
|
|
63
55
|
}
|
|
@@ -277,15 +269,7 @@ module Handinger
|
|
|
277
269
|
]
|
|
278
270
|
]
|
|
279
271
|
),
|
|
280
|
-
stream:
|
|
281
|
-
T.nilable(
|
|
282
|
-
T::Class[
|
|
283
|
-
Handinger::Internal::Type::BaseStream[
|
|
284
|
-
T.anything,
|
|
285
|
-
Handinger::Internal::Type::BaseModel
|
|
286
|
-
]
|
|
287
|
-
]
|
|
288
|
-
),
|
|
272
|
+
stream: T.nilable(T::Class[T.anything]),
|
|
289
273
|
model: T.nilable(Handinger::Internal::Type::Converter::Input),
|
|
290
274
|
options: T.nilable(Handinger::RequestOptions::OrHash)
|
|
291
275
|
).returns(T.anything)
|
|
@@ -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,23 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Handinger
|
|
4
|
+
module Models
|
|
5
|
+
class DeleteTaskResponse < Handinger::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Handinger::DeleteTaskResponse, Handinger::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
sig { returns(T::Boolean) }
|
|
12
|
+
attr_accessor :archived
|
|
13
|
+
|
|
14
|
+
sig { params(archived: T::Boolean).returns(T.attached_class) }
|
|
15
|
+
def self.new(archived:)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
sig { override.returns({ archived: T::Boolean }) }
|
|
19
|
+
def to_hash
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Handinger
|
|
4
|
+
module Models
|
|
5
|
+
class DeleteWorkerResponse < Handinger::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Handinger::DeleteWorkerResponse, Handinger::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
sig { returns(T::Boolean) }
|
|
12
|
+
attr_accessor :deleted
|
|
13
|
+
|
|
14
|
+
sig { params(deleted: T::Boolean).returns(T.attached_class) }
|
|
15
|
+
def self.new(deleted:)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
sig { override.returns({ deleted: T::Boolean }) }
|
|
19
|
+
def to_hash
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|