corvo-worker 0.2.0__tar.gz
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.
- corvo_worker-0.2.0/PKG-INFO +12 -0
- corvo_worker-0.2.0/corvo_worker/__init__.py +4 -0
- corvo_worker-0.2.0/corvo_worker/gen/__init__.py +0 -0
- corvo_worker-0.2.0/corvo_worker/gen/corvo/__init__.py +0 -0
- corvo_worker-0.2.0/corvo_worker/gen/corvo/v1/__init__.py +0 -0
- corvo_worker-0.2.0/corvo_worker/gen/corvo/v1/worker_pb2.py +93 -0
- corvo_worker-0.2.0/corvo_worker/gen/corvo/v1/worker_pb2.pyi +304 -0
- corvo_worker-0.2.0/corvo_worker/gen/corvo/v1/worker_pb2_grpc.py +398 -0
- corvo_worker-0.2.0/corvo_worker/rpc.py +288 -0
- corvo_worker-0.2.0/corvo_worker/worker.py +380 -0
- corvo_worker-0.2.0/corvo_worker.egg-info/PKG-INFO +12 -0
- corvo_worker-0.2.0/corvo_worker.egg-info/SOURCES.txt +24 -0
- corvo_worker-0.2.0/corvo_worker.egg-info/dependency_links.txt +1 -0
- corvo_worker-0.2.0/corvo_worker.egg-info/requires.txt +6 -0
- corvo_worker-0.2.0/corvo_worker.egg-info/top_level.txt +1 -0
- corvo_worker-0.2.0/pyproject.toml +26 -0
- corvo_worker-0.2.0/setup.cfg +4 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: corvo-worker
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: Python worker runtime for Corvo
|
|
5
|
+
License-Expression: MIT
|
|
6
|
+
Requires-Python: >=3.9
|
|
7
|
+
Description-Content-Type: text/plain
|
|
8
|
+
Requires-Dist: corvo-client>=0.1.0
|
|
9
|
+
Requires-Dist: grpcio>=1.62.0
|
|
10
|
+
Requires-Dist: protobuf>=4.25.0
|
|
11
|
+
Provides-Extra: dev
|
|
12
|
+
Requires-Dist: grpcio-tools>=1.62.0; extra == "dev"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: corvo/v1/worker.proto
|
|
5
|
+
# Protobuf Python Version: 6.31.1
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
6,
|
|
15
|
+
31,
|
|
16
|
+
1,
|
|
17
|
+
'',
|
|
18
|
+
'corvo/v1/worker.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x63orvo/v1/worker.proto\x12\x08\x63orvo.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"[\n\x0e\x45nqueueRequest\x12\r\n\x05queue\x18\x01 \x01(\t\x12\x14\n\x0cpayload_json\x18\x02 \x01(\t\x12$\n\x05\x61gent\x18\x03 \x01(\x0b\x32\x15.corvo.v1.AgentConfig\"J\n\x0f\x45nqueueResponse\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12\x0e\n\x06status\x18\x02 \x01(\t\x12\x17\n\x0funique_existing\x18\x03 \x01(\x08\"[\n\x0c\x46\x65tchRequest\x12\x0e\n\x06queues\x18\x01 \x03(\t\x12\x11\n\tworker_id\x18\x02 \x01(\t\x12\x10\n\x08hostname\x18\x03 \x01(\t\x12\x16\n\x0elease_duration\x18\x04 \x01(\x05\"\xe2\x01\n\rFetchResponse\x12\r\n\x05\x66ound\x18\x01 \x01(\x08\x12\x0e\n\x06job_id\x18\x02 \x01(\t\x12\r\n\x05queue\x18\x03 \x01(\t\x12\x14\n\x0cpayload_json\x18\x04 \x01(\t\x12\x0f\n\x07\x61ttempt\x18\x05 \x01(\x05\x12\x13\n\x0bmax_retries\x18\x06 \x01(\x05\x12\x16\n\x0elease_duration\x18\x07 \x01(\x05\x12\x17\n\x0f\x63heckpoint_json\x18\x08 \x01(\t\x12\x11\n\ttags_json\x18\t \x01(\t\x12#\n\x05\x61gent\x18\n \x01(\x0b\x32\x14.corvo.v1.AgentState\"o\n\x11\x46\x65tchBatchRequest\x12\x0e\n\x06queues\x18\x01 \x03(\t\x12\x11\n\tworker_id\x18\x02 \x01(\t\x12\x10\n\x08hostname\x18\x03 \x01(\t\x12\x16\n\x0elease_duration\x18\x04 \x01(\x05\x12\r\n\x05\x63ount\x18\x05 \x01(\x05\"\xd3\x01\n\rFetchBatchJob\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12\r\n\x05queue\x18\x02 \x01(\t\x12\x14\n\x0cpayload_json\x18\x03 \x01(\t\x12\x0f\n\x07\x61ttempt\x18\x04 \x01(\x05\x12\x13\n\x0bmax_retries\x18\x05 \x01(\x05\x12\x16\n\x0elease_duration\x18\x06 \x01(\x05\x12\x17\n\x0f\x63heckpoint_json\x18\x07 \x01(\t\x12\x11\n\ttags_json\x18\x08 \x01(\t\x12#\n\x05\x61gent\x18\t \x01(\x0b\x32\x14.corvo.v1.AgentState\";\n\x12\x46\x65tchBatchResponse\x12%\n\x04jobs\x18\x01 \x03(\x0b\x32\x17.corvo.v1.FetchBatchJob\"\xa7\x01\n\x0bUsageReport\x12\x14\n\x0cinput_tokens\x18\x01 \x01(\x03\x12\x15\n\routput_tokens\x18\x02 \x01(\x03\x12\x1d\n\x15\x63\x61\x63he_creation_tokens\x18\x03 \x01(\x03\x12\x19\n\x11\x63\x61\x63he_read_tokens\x18\x04 \x01(\x03\x12\r\n\x05model\x18\x05 \x01(\t\x12\x10\n\x08provider\x18\x06 \x01(\t\x12\x10\n\x08\x63ost_usd\x18\x07 \x01(\x01\"\xaf\x01\n\nAckRequest\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12\x13\n\x0bresult_json\x18\x02 \x01(\t\x12$\n\x05usage\x18\x03 \x01(\x0b\x32\x15.corvo.v1.UsageReport\x12\x17\n\x0f\x63heckpoint_json\x18\x04 \x01(\t\x12\x14\n\x0c\x61gent_status\x18\x05 \x01(\t\x12\x13\n\x0bhold_reason\x18\x06 \x01(\t\x12\x12\n\ntrace_json\x18\x07 \x01(\t\"\r\n\x0b\x41\x63kResponse\"Y\n\x0c\x41\x63kBatchItem\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12\x13\n\x0bresult_json\x18\x02 \x01(\t\x12$\n\x05usage\x18\x03 \x01(\x0b\x32\x15.corvo.v1.UsageReport\"8\n\x0f\x41\x63kBatchRequest\x12%\n\x05items\x18\x01 \x03(\x0b\x32\x16.corvo.v1.AckBatchItem\"!\n\x10\x41\x63kBatchResponse\x12\r\n\x05\x61\x63ked\x18\x01 \x01(\x05\"\xe6\x01\n\x16LifecycleStreamRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\x04\x12\x0e\n\x06queues\x18\x02 \x03(\t\x12\x11\n\tworker_id\x18\x03 \x01(\t\x12\x10\n\x08hostname\x18\x04 \x01(\t\x12\x16\n\x0elease_duration\x18\x05 \x01(\x05\x12\x13\n\x0b\x66\x65tch_count\x18\x06 \x01(\x05\x12$\n\x04\x61\x63ks\x18\x07 \x03(\x0b\x32\x16.corvo.v1.AckBatchItem\x12\x30\n\x08\x65nqueues\x18\x08 \x03(\x0b\x32\x1e.corvo.v1.LifecycleEnqueueItem\"a\n\x14LifecycleEnqueueItem\x12\r\n\x05queue\x18\x01 \x01(\t\x12\x14\n\x0cpayload_json\x18\x02 \x01(\t\x12$\n\x05\x61gent\x18\x03 \x01(\x0b\x32\x15.corvo.v1.AgentConfig\"V\n\x0b\x41gentConfig\x12\x16\n\x0emax_iterations\x18\x01 \x01(\x05\x12\x14\n\x0cmax_cost_usd\x18\x02 \x01(\x01\x12\x19\n\x11iteration_timeout\x18\x03 \x01(\t\"\x80\x01\n\nAgentState\x12\x16\n\x0emax_iterations\x18\x01 \x01(\x05\x12\x14\n\x0cmax_cost_usd\x18\x02 \x01(\x01\x12\x19\n\x11iteration_timeout\x18\x03 \x01(\t\x12\x11\n\titeration\x18\x04 \x01(\x05\x12\x16\n\x0etotal_cost_usd\x18\x05 \x01(\x01\"\xa1\x01\n\x17LifecycleStreamResponse\x12\x12\n\nrequest_id\x18\x01 \x01(\x04\x12%\n\x04jobs\x18\x02 \x03(\x0b\x32\x17.corvo.v1.FetchBatchJob\x12\r\n\x05\x61\x63ked\x18\x03 \x01(\x05\x12\r\n\x05\x65rror\x18\x04 \x01(\t\x12\x18\n\x10\x65nqueued_job_ids\x18\x05 \x03(\t\x12\x13\n\x0bleader_addr\x18\x06 \x01(\t\"?\n\x0b\x46\x61ilRequest\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12\r\n\x05\x65rror\x18\x02 \x01(\t\x12\x11\n\tbacktrace\x18\x03 \x01(\t\"o\n\x0c\x46\x61ilResponse\x12\x0e\n\x06status\x18\x01 \x01(\t\x12\x33\n\x0fnext_attempt_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1a\n\x12\x61ttempts_remaining\x18\x03 \x01(\x05\"\x80\x01\n\x12HeartbeatJobUpdate\x12\x15\n\rprogress_json\x18\x01 \x01(\t\x12\x17\n\x0f\x63heckpoint_json\x18\x02 \x01(\t\x12$\n\x05usage\x18\x03 \x01(\x0b\x32\x15.corvo.v1.UsageReport\x12\x14\n\x0cstream_delta\x18\x04 \x01(\t\"\x91\x01\n\x10HeartbeatRequest\x12\x32\n\x04jobs\x18\x01 \x03(\x0b\x32$.corvo.v1.HeartbeatRequest.JobsEntry\x1aI\n\tJobsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.corvo.v1.HeartbeatJobUpdate:\x02\x38\x01\"&\n\x14HeartbeatJobResponse\x12\x0e\n\x06status\x18\x01 \x01(\t\"\x95\x01\n\x11HeartbeatResponse\x12\x33\n\x04jobs\x18\x01 \x03(\x0b\x32%.corvo.v1.HeartbeatResponse.JobsEntry\x1aK\n\tJobsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12-\n\x05value\x18\x02 \x01(\x0b\x32\x1e.corvo.v1.HeartbeatJobResponse:\x02\x38\x01\x32\xb2\x04\n\rWorkerService\x12@\n\x07\x45nqueue\x12\x18.corvo.v1.EnqueueRequest\x1a\x19.corvo.v1.EnqueueResponse\"\x00\x12:\n\x05\x46\x65tch\x12\x16.corvo.v1.FetchRequest\x1a\x17.corvo.v1.FetchResponse\"\x00\x12I\n\nFetchBatch\x12\x1b.corvo.v1.FetchBatchRequest\x1a\x1c.corvo.v1.FetchBatchResponse\"\x00\x12\x34\n\x03\x41\x63k\x12\x14.corvo.v1.AckRequest\x1a\x15.corvo.v1.AckResponse\"\x00\x12\x43\n\x08\x41\x63kBatch\x12\x19.corvo.v1.AckBatchRequest\x1a\x1a.corvo.v1.AckBatchResponse\"\x00\x12\\\n\x0fStreamLifecycle\x12 .corvo.v1.LifecycleStreamRequest\x1a!.corvo.v1.LifecycleStreamResponse\"\x00(\x01\x30\x01\x12\x37\n\x04\x46\x61il\x12\x15.corvo.v1.FailRequest\x1a\x16.corvo.v1.FailResponse\"\x00\x12\x46\n\tHeartbeat\x12\x1a.corvo.v1.HeartbeatRequest\x1a\x1b.corvo.v1.HeartbeatResponse\"\x00\x62\x06proto3')
|
|
29
|
+
|
|
30
|
+
_globals = globals()
|
|
31
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
32
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'corvo.v1.worker_pb2', _globals)
|
|
33
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
34
|
+
DESCRIPTOR._loaded_options = None
|
|
35
|
+
_globals['_HEARTBEATREQUEST_JOBSENTRY']._loaded_options = None
|
|
36
|
+
_globals['_HEARTBEATREQUEST_JOBSENTRY']._serialized_options = b'8\001'
|
|
37
|
+
_globals['_HEARTBEATRESPONSE_JOBSENTRY']._loaded_options = None
|
|
38
|
+
_globals['_HEARTBEATRESPONSE_JOBSENTRY']._serialized_options = b'8\001'
|
|
39
|
+
_globals['_ENQUEUEREQUEST']._serialized_start=68
|
|
40
|
+
_globals['_ENQUEUEREQUEST']._serialized_end=159
|
|
41
|
+
_globals['_ENQUEUERESPONSE']._serialized_start=161
|
|
42
|
+
_globals['_ENQUEUERESPONSE']._serialized_end=235
|
|
43
|
+
_globals['_FETCHREQUEST']._serialized_start=237
|
|
44
|
+
_globals['_FETCHREQUEST']._serialized_end=328
|
|
45
|
+
_globals['_FETCHRESPONSE']._serialized_start=331
|
|
46
|
+
_globals['_FETCHRESPONSE']._serialized_end=557
|
|
47
|
+
_globals['_FETCHBATCHREQUEST']._serialized_start=559
|
|
48
|
+
_globals['_FETCHBATCHREQUEST']._serialized_end=670
|
|
49
|
+
_globals['_FETCHBATCHJOB']._serialized_start=673
|
|
50
|
+
_globals['_FETCHBATCHJOB']._serialized_end=884
|
|
51
|
+
_globals['_FETCHBATCHRESPONSE']._serialized_start=886
|
|
52
|
+
_globals['_FETCHBATCHRESPONSE']._serialized_end=945
|
|
53
|
+
_globals['_USAGEREPORT']._serialized_start=948
|
|
54
|
+
_globals['_USAGEREPORT']._serialized_end=1115
|
|
55
|
+
_globals['_ACKREQUEST']._serialized_start=1118
|
|
56
|
+
_globals['_ACKREQUEST']._serialized_end=1293
|
|
57
|
+
_globals['_ACKRESPONSE']._serialized_start=1295
|
|
58
|
+
_globals['_ACKRESPONSE']._serialized_end=1308
|
|
59
|
+
_globals['_ACKBATCHITEM']._serialized_start=1310
|
|
60
|
+
_globals['_ACKBATCHITEM']._serialized_end=1399
|
|
61
|
+
_globals['_ACKBATCHREQUEST']._serialized_start=1401
|
|
62
|
+
_globals['_ACKBATCHREQUEST']._serialized_end=1457
|
|
63
|
+
_globals['_ACKBATCHRESPONSE']._serialized_start=1459
|
|
64
|
+
_globals['_ACKBATCHRESPONSE']._serialized_end=1492
|
|
65
|
+
_globals['_LIFECYCLESTREAMREQUEST']._serialized_start=1495
|
|
66
|
+
_globals['_LIFECYCLESTREAMREQUEST']._serialized_end=1725
|
|
67
|
+
_globals['_LIFECYCLEENQUEUEITEM']._serialized_start=1727
|
|
68
|
+
_globals['_LIFECYCLEENQUEUEITEM']._serialized_end=1824
|
|
69
|
+
_globals['_AGENTCONFIG']._serialized_start=1826
|
|
70
|
+
_globals['_AGENTCONFIG']._serialized_end=1912
|
|
71
|
+
_globals['_AGENTSTATE']._serialized_start=1915
|
|
72
|
+
_globals['_AGENTSTATE']._serialized_end=2043
|
|
73
|
+
_globals['_LIFECYCLESTREAMRESPONSE']._serialized_start=2046
|
|
74
|
+
_globals['_LIFECYCLESTREAMRESPONSE']._serialized_end=2207
|
|
75
|
+
_globals['_FAILREQUEST']._serialized_start=2209
|
|
76
|
+
_globals['_FAILREQUEST']._serialized_end=2272
|
|
77
|
+
_globals['_FAILRESPONSE']._serialized_start=2274
|
|
78
|
+
_globals['_FAILRESPONSE']._serialized_end=2385
|
|
79
|
+
_globals['_HEARTBEATJOBUPDATE']._serialized_start=2388
|
|
80
|
+
_globals['_HEARTBEATJOBUPDATE']._serialized_end=2516
|
|
81
|
+
_globals['_HEARTBEATREQUEST']._serialized_start=2519
|
|
82
|
+
_globals['_HEARTBEATREQUEST']._serialized_end=2664
|
|
83
|
+
_globals['_HEARTBEATREQUEST_JOBSENTRY']._serialized_start=2591
|
|
84
|
+
_globals['_HEARTBEATREQUEST_JOBSENTRY']._serialized_end=2664
|
|
85
|
+
_globals['_HEARTBEATJOBRESPONSE']._serialized_start=2666
|
|
86
|
+
_globals['_HEARTBEATJOBRESPONSE']._serialized_end=2704
|
|
87
|
+
_globals['_HEARTBEATRESPONSE']._serialized_start=2707
|
|
88
|
+
_globals['_HEARTBEATRESPONSE']._serialized_end=2856
|
|
89
|
+
_globals['_HEARTBEATRESPONSE_JOBSENTRY']._serialized_start=2781
|
|
90
|
+
_globals['_HEARTBEATRESPONSE_JOBSENTRY']._serialized_end=2856
|
|
91
|
+
_globals['_WORKERSERVICE']._serialized_start=2859
|
|
92
|
+
_globals['_WORKERSERVICE']._serialized_end=3421
|
|
93
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
import datetime
|
|
2
|
+
|
|
3
|
+
from google.protobuf import timestamp_pb2 as _timestamp_pb2
|
|
4
|
+
from google.protobuf.internal import containers as _containers
|
|
5
|
+
from google.protobuf import descriptor as _descriptor
|
|
6
|
+
from google.protobuf import message as _message
|
|
7
|
+
from collections.abc import Iterable as _Iterable, Mapping as _Mapping
|
|
8
|
+
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
|
|
9
|
+
|
|
10
|
+
DESCRIPTOR: _descriptor.FileDescriptor
|
|
11
|
+
|
|
12
|
+
class EnqueueRequest(_message.Message):
|
|
13
|
+
__slots__ = ("queue", "payload_json", "agent")
|
|
14
|
+
QUEUE_FIELD_NUMBER: _ClassVar[int]
|
|
15
|
+
PAYLOAD_JSON_FIELD_NUMBER: _ClassVar[int]
|
|
16
|
+
AGENT_FIELD_NUMBER: _ClassVar[int]
|
|
17
|
+
queue: str
|
|
18
|
+
payload_json: str
|
|
19
|
+
agent: AgentConfig
|
|
20
|
+
def __init__(self, queue: _Optional[str] = ..., payload_json: _Optional[str] = ..., agent: _Optional[_Union[AgentConfig, _Mapping]] = ...) -> None: ...
|
|
21
|
+
|
|
22
|
+
class EnqueueResponse(_message.Message):
|
|
23
|
+
__slots__ = ("job_id", "status", "unique_existing")
|
|
24
|
+
JOB_ID_FIELD_NUMBER: _ClassVar[int]
|
|
25
|
+
STATUS_FIELD_NUMBER: _ClassVar[int]
|
|
26
|
+
UNIQUE_EXISTING_FIELD_NUMBER: _ClassVar[int]
|
|
27
|
+
job_id: str
|
|
28
|
+
status: str
|
|
29
|
+
unique_existing: bool
|
|
30
|
+
def __init__(self, job_id: _Optional[str] = ..., status: _Optional[str] = ..., unique_existing: bool = ...) -> None: ...
|
|
31
|
+
|
|
32
|
+
class FetchRequest(_message.Message):
|
|
33
|
+
__slots__ = ("queues", "worker_id", "hostname", "lease_duration")
|
|
34
|
+
QUEUES_FIELD_NUMBER: _ClassVar[int]
|
|
35
|
+
WORKER_ID_FIELD_NUMBER: _ClassVar[int]
|
|
36
|
+
HOSTNAME_FIELD_NUMBER: _ClassVar[int]
|
|
37
|
+
LEASE_DURATION_FIELD_NUMBER: _ClassVar[int]
|
|
38
|
+
queues: _containers.RepeatedScalarFieldContainer[str]
|
|
39
|
+
worker_id: str
|
|
40
|
+
hostname: str
|
|
41
|
+
lease_duration: int
|
|
42
|
+
def __init__(self, queues: _Optional[_Iterable[str]] = ..., worker_id: _Optional[str] = ..., hostname: _Optional[str] = ..., lease_duration: _Optional[int] = ...) -> None: ...
|
|
43
|
+
|
|
44
|
+
class FetchResponse(_message.Message):
|
|
45
|
+
__slots__ = ("found", "job_id", "queue", "payload_json", "attempt", "max_retries", "lease_duration", "checkpoint_json", "tags_json", "agent")
|
|
46
|
+
FOUND_FIELD_NUMBER: _ClassVar[int]
|
|
47
|
+
JOB_ID_FIELD_NUMBER: _ClassVar[int]
|
|
48
|
+
QUEUE_FIELD_NUMBER: _ClassVar[int]
|
|
49
|
+
PAYLOAD_JSON_FIELD_NUMBER: _ClassVar[int]
|
|
50
|
+
ATTEMPT_FIELD_NUMBER: _ClassVar[int]
|
|
51
|
+
MAX_RETRIES_FIELD_NUMBER: _ClassVar[int]
|
|
52
|
+
LEASE_DURATION_FIELD_NUMBER: _ClassVar[int]
|
|
53
|
+
CHECKPOINT_JSON_FIELD_NUMBER: _ClassVar[int]
|
|
54
|
+
TAGS_JSON_FIELD_NUMBER: _ClassVar[int]
|
|
55
|
+
AGENT_FIELD_NUMBER: _ClassVar[int]
|
|
56
|
+
found: bool
|
|
57
|
+
job_id: str
|
|
58
|
+
queue: str
|
|
59
|
+
payload_json: str
|
|
60
|
+
attempt: int
|
|
61
|
+
max_retries: int
|
|
62
|
+
lease_duration: int
|
|
63
|
+
checkpoint_json: str
|
|
64
|
+
tags_json: str
|
|
65
|
+
agent: AgentState
|
|
66
|
+
def __init__(self, found: bool = ..., job_id: _Optional[str] = ..., queue: _Optional[str] = ..., payload_json: _Optional[str] = ..., attempt: _Optional[int] = ..., max_retries: _Optional[int] = ..., lease_duration: _Optional[int] = ..., checkpoint_json: _Optional[str] = ..., tags_json: _Optional[str] = ..., agent: _Optional[_Union[AgentState, _Mapping]] = ...) -> None: ...
|
|
67
|
+
|
|
68
|
+
class FetchBatchRequest(_message.Message):
|
|
69
|
+
__slots__ = ("queues", "worker_id", "hostname", "lease_duration", "count")
|
|
70
|
+
QUEUES_FIELD_NUMBER: _ClassVar[int]
|
|
71
|
+
WORKER_ID_FIELD_NUMBER: _ClassVar[int]
|
|
72
|
+
HOSTNAME_FIELD_NUMBER: _ClassVar[int]
|
|
73
|
+
LEASE_DURATION_FIELD_NUMBER: _ClassVar[int]
|
|
74
|
+
COUNT_FIELD_NUMBER: _ClassVar[int]
|
|
75
|
+
queues: _containers.RepeatedScalarFieldContainer[str]
|
|
76
|
+
worker_id: str
|
|
77
|
+
hostname: str
|
|
78
|
+
lease_duration: int
|
|
79
|
+
count: int
|
|
80
|
+
def __init__(self, queues: _Optional[_Iterable[str]] = ..., worker_id: _Optional[str] = ..., hostname: _Optional[str] = ..., lease_duration: _Optional[int] = ..., count: _Optional[int] = ...) -> None: ...
|
|
81
|
+
|
|
82
|
+
class FetchBatchJob(_message.Message):
|
|
83
|
+
__slots__ = ("job_id", "queue", "payload_json", "attempt", "max_retries", "lease_duration", "checkpoint_json", "tags_json", "agent")
|
|
84
|
+
JOB_ID_FIELD_NUMBER: _ClassVar[int]
|
|
85
|
+
QUEUE_FIELD_NUMBER: _ClassVar[int]
|
|
86
|
+
PAYLOAD_JSON_FIELD_NUMBER: _ClassVar[int]
|
|
87
|
+
ATTEMPT_FIELD_NUMBER: _ClassVar[int]
|
|
88
|
+
MAX_RETRIES_FIELD_NUMBER: _ClassVar[int]
|
|
89
|
+
LEASE_DURATION_FIELD_NUMBER: _ClassVar[int]
|
|
90
|
+
CHECKPOINT_JSON_FIELD_NUMBER: _ClassVar[int]
|
|
91
|
+
TAGS_JSON_FIELD_NUMBER: _ClassVar[int]
|
|
92
|
+
AGENT_FIELD_NUMBER: _ClassVar[int]
|
|
93
|
+
job_id: str
|
|
94
|
+
queue: str
|
|
95
|
+
payload_json: str
|
|
96
|
+
attempt: int
|
|
97
|
+
max_retries: int
|
|
98
|
+
lease_duration: int
|
|
99
|
+
checkpoint_json: str
|
|
100
|
+
tags_json: str
|
|
101
|
+
agent: AgentState
|
|
102
|
+
def __init__(self, job_id: _Optional[str] = ..., queue: _Optional[str] = ..., payload_json: _Optional[str] = ..., attempt: _Optional[int] = ..., max_retries: _Optional[int] = ..., lease_duration: _Optional[int] = ..., checkpoint_json: _Optional[str] = ..., tags_json: _Optional[str] = ..., agent: _Optional[_Union[AgentState, _Mapping]] = ...) -> None: ...
|
|
103
|
+
|
|
104
|
+
class FetchBatchResponse(_message.Message):
|
|
105
|
+
__slots__ = ("jobs",)
|
|
106
|
+
JOBS_FIELD_NUMBER: _ClassVar[int]
|
|
107
|
+
jobs: _containers.RepeatedCompositeFieldContainer[FetchBatchJob]
|
|
108
|
+
def __init__(self, jobs: _Optional[_Iterable[_Union[FetchBatchJob, _Mapping]]] = ...) -> None: ...
|
|
109
|
+
|
|
110
|
+
class UsageReport(_message.Message):
|
|
111
|
+
__slots__ = ("input_tokens", "output_tokens", "cache_creation_tokens", "cache_read_tokens", "model", "provider", "cost_usd")
|
|
112
|
+
INPUT_TOKENS_FIELD_NUMBER: _ClassVar[int]
|
|
113
|
+
OUTPUT_TOKENS_FIELD_NUMBER: _ClassVar[int]
|
|
114
|
+
CACHE_CREATION_TOKENS_FIELD_NUMBER: _ClassVar[int]
|
|
115
|
+
CACHE_READ_TOKENS_FIELD_NUMBER: _ClassVar[int]
|
|
116
|
+
MODEL_FIELD_NUMBER: _ClassVar[int]
|
|
117
|
+
PROVIDER_FIELD_NUMBER: _ClassVar[int]
|
|
118
|
+
COST_USD_FIELD_NUMBER: _ClassVar[int]
|
|
119
|
+
input_tokens: int
|
|
120
|
+
output_tokens: int
|
|
121
|
+
cache_creation_tokens: int
|
|
122
|
+
cache_read_tokens: int
|
|
123
|
+
model: str
|
|
124
|
+
provider: str
|
|
125
|
+
cost_usd: float
|
|
126
|
+
def __init__(self, input_tokens: _Optional[int] = ..., output_tokens: _Optional[int] = ..., cache_creation_tokens: _Optional[int] = ..., cache_read_tokens: _Optional[int] = ..., model: _Optional[str] = ..., provider: _Optional[str] = ..., cost_usd: _Optional[float] = ...) -> None: ...
|
|
127
|
+
|
|
128
|
+
class AckRequest(_message.Message):
|
|
129
|
+
__slots__ = ("job_id", "result_json", "usage", "checkpoint_json", "agent_status", "hold_reason", "trace_json")
|
|
130
|
+
JOB_ID_FIELD_NUMBER: _ClassVar[int]
|
|
131
|
+
RESULT_JSON_FIELD_NUMBER: _ClassVar[int]
|
|
132
|
+
USAGE_FIELD_NUMBER: _ClassVar[int]
|
|
133
|
+
CHECKPOINT_JSON_FIELD_NUMBER: _ClassVar[int]
|
|
134
|
+
AGENT_STATUS_FIELD_NUMBER: _ClassVar[int]
|
|
135
|
+
HOLD_REASON_FIELD_NUMBER: _ClassVar[int]
|
|
136
|
+
TRACE_JSON_FIELD_NUMBER: _ClassVar[int]
|
|
137
|
+
job_id: str
|
|
138
|
+
result_json: str
|
|
139
|
+
usage: UsageReport
|
|
140
|
+
checkpoint_json: str
|
|
141
|
+
agent_status: str
|
|
142
|
+
hold_reason: str
|
|
143
|
+
trace_json: str
|
|
144
|
+
def __init__(self, job_id: _Optional[str] = ..., result_json: _Optional[str] = ..., usage: _Optional[_Union[UsageReport, _Mapping]] = ..., checkpoint_json: _Optional[str] = ..., agent_status: _Optional[str] = ..., hold_reason: _Optional[str] = ..., trace_json: _Optional[str] = ...) -> None: ...
|
|
145
|
+
|
|
146
|
+
class AckResponse(_message.Message):
|
|
147
|
+
__slots__ = ()
|
|
148
|
+
def __init__(self) -> None: ...
|
|
149
|
+
|
|
150
|
+
class AckBatchItem(_message.Message):
|
|
151
|
+
__slots__ = ("job_id", "result_json", "usage")
|
|
152
|
+
JOB_ID_FIELD_NUMBER: _ClassVar[int]
|
|
153
|
+
RESULT_JSON_FIELD_NUMBER: _ClassVar[int]
|
|
154
|
+
USAGE_FIELD_NUMBER: _ClassVar[int]
|
|
155
|
+
job_id: str
|
|
156
|
+
result_json: str
|
|
157
|
+
usage: UsageReport
|
|
158
|
+
def __init__(self, job_id: _Optional[str] = ..., result_json: _Optional[str] = ..., usage: _Optional[_Union[UsageReport, _Mapping]] = ...) -> None: ...
|
|
159
|
+
|
|
160
|
+
class AckBatchRequest(_message.Message):
|
|
161
|
+
__slots__ = ("items",)
|
|
162
|
+
ITEMS_FIELD_NUMBER: _ClassVar[int]
|
|
163
|
+
items: _containers.RepeatedCompositeFieldContainer[AckBatchItem]
|
|
164
|
+
def __init__(self, items: _Optional[_Iterable[_Union[AckBatchItem, _Mapping]]] = ...) -> None: ...
|
|
165
|
+
|
|
166
|
+
class AckBatchResponse(_message.Message):
|
|
167
|
+
__slots__ = ("acked",)
|
|
168
|
+
ACKED_FIELD_NUMBER: _ClassVar[int]
|
|
169
|
+
acked: int
|
|
170
|
+
def __init__(self, acked: _Optional[int] = ...) -> None: ...
|
|
171
|
+
|
|
172
|
+
class LifecycleStreamRequest(_message.Message):
|
|
173
|
+
__slots__ = ("request_id", "queues", "worker_id", "hostname", "lease_duration", "fetch_count", "acks", "enqueues")
|
|
174
|
+
REQUEST_ID_FIELD_NUMBER: _ClassVar[int]
|
|
175
|
+
QUEUES_FIELD_NUMBER: _ClassVar[int]
|
|
176
|
+
WORKER_ID_FIELD_NUMBER: _ClassVar[int]
|
|
177
|
+
HOSTNAME_FIELD_NUMBER: _ClassVar[int]
|
|
178
|
+
LEASE_DURATION_FIELD_NUMBER: _ClassVar[int]
|
|
179
|
+
FETCH_COUNT_FIELD_NUMBER: _ClassVar[int]
|
|
180
|
+
ACKS_FIELD_NUMBER: _ClassVar[int]
|
|
181
|
+
ENQUEUES_FIELD_NUMBER: _ClassVar[int]
|
|
182
|
+
request_id: int
|
|
183
|
+
queues: _containers.RepeatedScalarFieldContainer[str]
|
|
184
|
+
worker_id: str
|
|
185
|
+
hostname: str
|
|
186
|
+
lease_duration: int
|
|
187
|
+
fetch_count: int
|
|
188
|
+
acks: _containers.RepeatedCompositeFieldContainer[AckBatchItem]
|
|
189
|
+
enqueues: _containers.RepeatedCompositeFieldContainer[LifecycleEnqueueItem]
|
|
190
|
+
def __init__(self, request_id: _Optional[int] = ..., queues: _Optional[_Iterable[str]] = ..., worker_id: _Optional[str] = ..., hostname: _Optional[str] = ..., lease_duration: _Optional[int] = ..., fetch_count: _Optional[int] = ..., acks: _Optional[_Iterable[_Union[AckBatchItem, _Mapping]]] = ..., enqueues: _Optional[_Iterable[_Union[LifecycleEnqueueItem, _Mapping]]] = ...) -> None: ...
|
|
191
|
+
|
|
192
|
+
class LifecycleEnqueueItem(_message.Message):
|
|
193
|
+
__slots__ = ("queue", "payload_json", "agent")
|
|
194
|
+
QUEUE_FIELD_NUMBER: _ClassVar[int]
|
|
195
|
+
PAYLOAD_JSON_FIELD_NUMBER: _ClassVar[int]
|
|
196
|
+
AGENT_FIELD_NUMBER: _ClassVar[int]
|
|
197
|
+
queue: str
|
|
198
|
+
payload_json: str
|
|
199
|
+
agent: AgentConfig
|
|
200
|
+
def __init__(self, queue: _Optional[str] = ..., payload_json: _Optional[str] = ..., agent: _Optional[_Union[AgentConfig, _Mapping]] = ...) -> None: ...
|
|
201
|
+
|
|
202
|
+
class AgentConfig(_message.Message):
|
|
203
|
+
__slots__ = ("max_iterations", "max_cost_usd", "iteration_timeout")
|
|
204
|
+
MAX_ITERATIONS_FIELD_NUMBER: _ClassVar[int]
|
|
205
|
+
MAX_COST_USD_FIELD_NUMBER: _ClassVar[int]
|
|
206
|
+
ITERATION_TIMEOUT_FIELD_NUMBER: _ClassVar[int]
|
|
207
|
+
max_iterations: int
|
|
208
|
+
max_cost_usd: float
|
|
209
|
+
iteration_timeout: str
|
|
210
|
+
def __init__(self, max_iterations: _Optional[int] = ..., max_cost_usd: _Optional[float] = ..., iteration_timeout: _Optional[str] = ...) -> None: ...
|
|
211
|
+
|
|
212
|
+
class AgentState(_message.Message):
|
|
213
|
+
__slots__ = ("max_iterations", "max_cost_usd", "iteration_timeout", "iteration", "total_cost_usd")
|
|
214
|
+
MAX_ITERATIONS_FIELD_NUMBER: _ClassVar[int]
|
|
215
|
+
MAX_COST_USD_FIELD_NUMBER: _ClassVar[int]
|
|
216
|
+
ITERATION_TIMEOUT_FIELD_NUMBER: _ClassVar[int]
|
|
217
|
+
ITERATION_FIELD_NUMBER: _ClassVar[int]
|
|
218
|
+
TOTAL_COST_USD_FIELD_NUMBER: _ClassVar[int]
|
|
219
|
+
max_iterations: int
|
|
220
|
+
max_cost_usd: float
|
|
221
|
+
iteration_timeout: str
|
|
222
|
+
iteration: int
|
|
223
|
+
total_cost_usd: float
|
|
224
|
+
def __init__(self, max_iterations: _Optional[int] = ..., max_cost_usd: _Optional[float] = ..., iteration_timeout: _Optional[str] = ..., iteration: _Optional[int] = ..., total_cost_usd: _Optional[float] = ...) -> None: ...
|
|
225
|
+
|
|
226
|
+
class LifecycleStreamResponse(_message.Message):
|
|
227
|
+
__slots__ = ("request_id", "jobs", "acked", "error", "enqueued_job_ids", "leader_addr")
|
|
228
|
+
REQUEST_ID_FIELD_NUMBER: _ClassVar[int]
|
|
229
|
+
JOBS_FIELD_NUMBER: _ClassVar[int]
|
|
230
|
+
ACKED_FIELD_NUMBER: _ClassVar[int]
|
|
231
|
+
ERROR_FIELD_NUMBER: _ClassVar[int]
|
|
232
|
+
ENQUEUED_JOB_IDS_FIELD_NUMBER: _ClassVar[int]
|
|
233
|
+
LEADER_ADDR_FIELD_NUMBER: _ClassVar[int]
|
|
234
|
+
request_id: int
|
|
235
|
+
jobs: _containers.RepeatedCompositeFieldContainer[FetchBatchJob]
|
|
236
|
+
acked: int
|
|
237
|
+
error: str
|
|
238
|
+
enqueued_job_ids: _containers.RepeatedScalarFieldContainer[str]
|
|
239
|
+
leader_addr: str
|
|
240
|
+
def __init__(self, request_id: _Optional[int] = ..., jobs: _Optional[_Iterable[_Union[FetchBatchJob, _Mapping]]] = ..., acked: _Optional[int] = ..., error: _Optional[str] = ..., enqueued_job_ids: _Optional[_Iterable[str]] = ..., leader_addr: _Optional[str] = ...) -> None: ...
|
|
241
|
+
|
|
242
|
+
class FailRequest(_message.Message):
|
|
243
|
+
__slots__ = ("job_id", "error", "backtrace")
|
|
244
|
+
JOB_ID_FIELD_NUMBER: _ClassVar[int]
|
|
245
|
+
ERROR_FIELD_NUMBER: _ClassVar[int]
|
|
246
|
+
BACKTRACE_FIELD_NUMBER: _ClassVar[int]
|
|
247
|
+
job_id: str
|
|
248
|
+
error: str
|
|
249
|
+
backtrace: str
|
|
250
|
+
def __init__(self, job_id: _Optional[str] = ..., error: _Optional[str] = ..., backtrace: _Optional[str] = ...) -> None: ...
|
|
251
|
+
|
|
252
|
+
class FailResponse(_message.Message):
|
|
253
|
+
__slots__ = ("status", "next_attempt_at", "attempts_remaining")
|
|
254
|
+
STATUS_FIELD_NUMBER: _ClassVar[int]
|
|
255
|
+
NEXT_ATTEMPT_AT_FIELD_NUMBER: _ClassVar[int]
|
|
256
|
+
ATTEMPTS_REMAINING_FIELD_NUMBER: _ClassVar[int]
|
|
257
|
+
status: str
|
|
258
|
+
next_attempt_at: _timestamp_pb2.Timestamp
|
|
259
|
+
attempts_remaining: int
|
|
260
|
+
def __init__(self, status: _Optional[str] = ..., next_attempt_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., attempts_remaining: _Optional[int] = ...) -> None: ...
|
|
261
|
+
|
|
262
|
+
class HeartbeatJobUpdate(_message.Message):
|
|
263
|
+
__slots__ = ("progress_json", "checkpoint_json", "usage", "stream_delta")
|
|
264
|
+
PROGRESS_JSON_FIELD_NUMBER: _ClassVar[int]
|
|
265
|
+
CHECKPOINT_JSON_FIELD_NUMBER: _ClassVar[int]
|
|
266
|
+
USAGE_FIELD_NUMBER: _ClassVar[int]
|
|
267
|
+
STREAM_DELTA_FIELD_NUMBER: _ClassVar[int]
|
|
268
|
+
progress_json: str
|
|
269
|
+
checkpoint_json: str
|
|
270
|
+
usage: UsageReport
|
|
271
|
+
stream_delta: str
|
|
272
|
+
def __init__(self, progress_json: _Optional[str] = ..., checkpoint_json: _Optional[str] = ..., usage: _Optional[_Union[UsageReport, _Mapping]] = ..., stream_delta: _Optional[str] = ...) -> None: ...
|
|
273
|
+
|
|
274
|
+
class HeartbeatRequest(_message.Message):
|
|
275
|
+
__slots__ = ("jobs",)
|
|
276
|
+
class JobsEntry(_message.Message):
|
|
277
|
+
__slots__ = ("key", "value")
|
|
278
|
+
KEY_FIELD_NUMBER: _ClassVar[int]
|
|
279
|
+
VALUE_FIELD_NUMBER: _ClassVar[int]
|
|
280
|
+
key: str
|
|
281
|
+
value: HeartbeatJobUpdate
|
|
282
|
+
def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[HeartbeatJobUpdate, _Mapping]] = ...) -> None: ...
|
|
283
|
+
JOBS_FIELD_NUMBER: _ClassVar[int]
|
|
284
|
+
jobs: _containers.MessageMap[str, HeartbeatJobUpdate]
|
|
285
|
+
def __init__(self, jobs: _Optional[_Mapping[str, HeartbeatJobUpdate]] = ...) -> None: ...
|
|
286
|
+
|
|
287
|
+
class HeartbeatJobResponse(_message.Message):
|
|
288
|
+
__slots__ = ("status",)
|
|
289
|
+
STATUS_FIELD_NUMBER: _ClassVar[int]
|
|
290
|
+
status: str
|
|
291
|
+
def __init__(self, status: _Optional[str] = ...) -> None: ...
|
|
292
|
+
|
|
293
|
+
class HeartbeatResponse(_message.Message):
|
|
294
|
+
__slots__ = ("jobs",)
|
|
295
|
+
class JobsEntry(_message.Message):
|
|
296
|
+
__slots__ = ("key", "value")
|
|
297
|
+
KEY_FIELD_NUMBER: _ClassVar[int]
|
|
298
|
+
VALUE_FIELD_NUMBER: _ClassVar[int]
|
|
299
|
+
key: str
|
|
300
|
+
value: HeartbeatJobResponse
|
|
301
|
+
def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[HeartbeatJobResponse, _Mapping]] = ...) -> None: ...
|
|
302
|
+
JOBS_FIELD_NUMBER: _ClassVar[int]
|
|
303
|
+
jobs: _containers.MessageMap[str, HeartbeatJobResponse]
|
|
304
|
+
def __init__(self, jobs: _Optional[_Mapping[str, HeartbeatJobResponse]] = ...) -> None: ...
|