diff --git a/.changeset/bump-protocol-dispatch-thread-id.md b/.changeset/bump-protocol-dispatch-thread-id.md new file mode 100644 index 00000000..135dfdba --- /dev/null +++ b/.changeset/bump-protocol-dispatch-thread-id.md @@ -0,0 +1,5 @@ +--- +"livekit-protocol": patch +--- + +Bump the protocol to livekit/protocol@b499314: `thread_id` on agent dispatches and jobs (livekit/protocol#1958), and attempt counts, first start time and workers asked on `JobState` (livekit/protocol#1949, livekit/protocol#1953). diff --git a/livekit-protocol/livekit/protocol/agent.py b/livekit-protocol/livekit/protocol/agent.py index 1693c3ae..4f818855 100644 --- a/livekit-protocol/livekit/protocol/agent.py +++ b/livekit-protocol/livekit/protocol/agent.py @@ -26,7 +26,7 @@ from .logger_pb import options as logger_dot_options__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13livekit_agent.proto\x12\x07livekit\x1a\x14livekit_models.proto\x1a\x14logger/options.proto\"\xe0\x03\n\x03Job\x12\n\n\x02id\x18\x01 \x01(\t\x12\"\n\x0b\x64ispatch_id\x18\t \x01(\tB\r\xbaP\ndispatchID\x12\x1e\n\x04type\x18\x02 \x01(\x0e\x32\x10.livekit.JobType\x12\x1b\n\x04room\x18\x03 \x01(\x0b\x32\r.livekit.Room\x12\x32\n\x0bparticipant\x18\x04 \x01(\x0b\x32\x18.livekit.ParticipantInfoH\x00\x88\x01\x01\x12\x15\n\tnamespace\x18\x05 \x01(\tB\x02\x18\x01\x12\x15\n\x08metadata\x18\x06 \x01(\tB\x03\xc0P\x01\x12\x12\n\nagent_name\x18\x07 \x01(\t\x12 \n\x05state\x18\x08 \x01(\x0b\x32\x11.livekit.JobState\x12\x18\n\x10\x65nable_recording\x18\n \x01(\x08\x12\x12\n\ndeployment\x18\x0b \x01(\t\x12\x35\n\nattributes\x18\x0c \x03(\x0b\x32\x1c.livekit.Job.AttributesEntryB\x03\xc0P\x01\x12\x18\n\x10\x65nable_redaction\x18\r \x01(\x08\x12\x12\n\ncreated_at\x18\x0e \x01(\x03\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0e\n\x0c_participant\"\xa6\x02\n\x08JobState\x12\"\n\x06status\x18\x01 \x01(\x0e\x32\x12.livekit.JobStatus\x12\r\n\x05\x65rror\x18\x02 \x01(\t\x12\x12\n\nstarted_at\x18\x03 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x04 \x01(\x03\x12\x12\n\nupdated_at\x18\x05 \x01(\x03\x12\x1c\n\x14participant_identity\x18\x06 \x01(\t\x12\x1e\n\tworker_id\x18\x07 \x01(\tB\x0b\xbaP\x08workerID\x12\x1c\n\x08\x61gent_id\x18\x08 \x01(\tB\n\xbaP\x07\x61gentID\x12\'\n\x06reason\x18\t \x01(\x0e\x32\x17.livekit.JobStateReason\x12\x13\n\x0b\x61\x63\x63\x65pted_at\x18\n \x01(\x03\x12\x13\n\x0b\x61ssigned_at\x18\x0b \x01(\x03\"\xf8\x02\n\rWorkerMessage\x12\x32\n\x08register\x18\x01 \x01(\x0b\x32\x1e.livekit.RegisterWorkerRequestH\x00\x12\x35\n\x0c\x61vailability\x18\x02 \x01(\x0b\x32\x1d.livekit.AvailabilityResponseH\x00\x12\x34\n\rupdate_worker\x18\x03 \x01(\x0b\x32\x1b.livekit.UpdateWorkerStatusH\x00\x12.\n\nupdate_job\x18\x04 \x01(\x0b\x32\x18.livekit.UpdateJobStatusH\x00\x12#\n\x04ping\x18\x05 \x01(\x0b\x32\x13.livekit.WorkerPingH\x00\x12\x33\n\x0csimulate_job\x18\x06 \x01(\x0b\x32\x1b.livekit.SimulateJobRequestH\x00\x12\x31\n\x0bmigrate_job\x18\x07 \x01(\x0b\x32\x1a.livekit.MigrateJobRequestH\x00\x42\t\n\x07message\"\xb6\x02\n\rServerMessage\x12\x33\n\x08register\x18\x01 \x01(\x0b\x32\x1f.livekit.RegisterWorkerResponseH\x00\x12\x34\n\x0c\x61vailability\x18\x02 \x01(\x0b\x32\x1c.livekit.AvailabilityRequestH\x00\x12,\n\nassignment\x18\x03 \x01(\x0b\x32\x16.livekit.JobAssignmentH\x00\x12.\n\x0btermination\x18\x05 \x01(\x0b\x32\x17.livekit.JobTerminationH\x00\x12#\n\x04pong\x18\x04 \x01(\x0b\x32\x13.livekit.WorkerPongH\x00\x12,\n\x07go_away\x18\x06 \x01(\x0b\x32\x19.livekit.AgentHttp.GoAwayH\x00\x42\t\n\x07message\"\x80\x01\n\x12SimulateJobRequest\x12\x1e\n\x04type\x18\x01 \x01(\x0e\x32\x10.livekit.JobType\x12\x1b\n\x04room\x18\x02 \x01(\x0b\x32\r.livekit.Room\x12-\n\x0bparticipant\x18\x03 \x01(\x0b\x32\x18.livekit.ParticipantInfo\"\x1f\n\nWorkerPing\x12\x11\n\ttimestamp\x18\x01 \x01(\x03\"7\n\nWorkerPong\x12\x16\n\x0elast_timestamp\x18\x01 \x01(\x03\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\"\xea\x02\n\x15RegisterWorkerRequest\x12\x1e\n\x04type\x18\x01 \x01(\x0e\x32\x10.livekit.JobType\x12\x12\n\nagent_name\x18\x08 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\t\x12\x15\n\rping_interval\x18\x05 \x01(\r\x12\x16\n\tnamespace\x18\x06 \x01(\tH\x00\x88\x01\x01\x12;\n\x13\x61llowed_permissions\x18\x07 \x01(\x0b\x32\x1e.livekit.ParticipantPermission\x12\x12\n\ndeployment\x18\t \x01(\t\x12\x33\n\tendpoints\x18\n \x03(\x0b\x32 .livekit.AgentHttp.AgentEndpoint\x12\"\n\x0binstance_id\x18\x0b \x01(\tB\r\xbaP\ninstanceID\x12\x19\n\x11\x65ndpoint_protocol\x18\x0c \x01(\rB\x0c\n\n_namespaceJ\x04\x08\x02\x10\x03J\x04\x08\x04\x10\x05\"\xad\x01\n\x16RegisterWorkerResponse\x12\x1e\n\tworker_id\x18\x01 \x01(\tB\x0b\xbaP\x08workerID\x12(\n\x0bserver_info\x18\x03 \x01(\x0b\x32\x13.livekit.ServerInfo\x12\x43\n\x11\x65ndpoint_settings\x18\x04 \x01(\x0b\x32(.livekit.AgentHttp.AgentEndpointSettingsJ\x04\x08\x02\x10\x03\"@\n\x11MigrateJobRequest\x12\x0f\n\x07job_ids\x18\x02 \x03(\t\x12\x1a\n\x04jobs\x18\x03 \x03(\x0b\x32\x0c.livekit.Job\"B\n\x13\x41vailabilityRequest\x12\x19\n\x03job\x18\x01 \x01(\x0b\x32\x0c.livekit.Job\x12\x10\n\x08resuming\x18\x02 \x01(\x08\"\xdd\x02\n\x14\x41vailabilityResponse\x12\x18\n\x06job_id\x18\x01 \x01(\tB\x08\xbaP\x05jobID\x12\x11\n\tavailable\x18\x02 \x01(\x08\x12\x17\n\x0fsupports_resume\x18\x03 \x01(\x08\x12\x11\n\tterminate\x18\x08 \x01(\x08\x12\x18\n\x10participant_name\x18\x04 \x01(\t\x12\x1c\n\x14participant_identity\x18\x05 \x01(\t\x12\x1c\n\x14participant_metadata\x18\x06 \x01(\t\x12X\n\x16participant_attributes\x18\x07 \x03(\x0b\x32\x38.livekit.AvailabilityResponse.ParticipantAttributesEntry\x1a<\n\x1aParticipantAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x8b\x01\n\x0fUpdateJobStatus\x12\x18\n\x06job_id\x18\x01 \x01(\tB\x08\xbaP\x05jobID\x12\"\n\x06status\x18\x02 \x01(\x0e\x32\x12.livekit.JobStatus\x12\r\n\x05\x65rror\x18\x03 \x01(\t\x12+\n\x0bjoin_timing\x18\x04 \x01(\x0b\x32\x16.livekit.JobJoinTiming\"\xd9\x01\n\rJobJoinTiming\x12\x19\n\x11offer_received_us\x18\x01 \x01(\x03\x12\x13\n\x0b\x61\x63\x63\x65pted_us\x18\x02 \x01(\x03\x12\x1e\n\x16\x61ssignment_received_us\x18\x03 \x01(\x03\x12\x13\n\x0blaunched_us\x18\x04 \x01(\x03\x12\x13\n\x0blaunch_warm\x18\x05 \x01(\x08\x12\x1d\n\x15\x65ntrypoint_started_us\x18\x06 \x01(\x03\x12\x19\n\x11\x63onnect_called_us\x18\x07 \x01(\x03\x12\x14\n\x0c\x63onnected_us\x18\x08 \x01(\x03\"\x91\x01\n\x12UpdateWorkerStatus\x12*\n\x06status\x18\x01 \x01(\x0e\x32\x15.livekit.WorkerStatusH\x00\x88\x01\x01\x12\x0c\n\x04load\x18\x03 \x01(\x02\x12\x11\n\tjob_count\x18\x04 \x01(\r\x12\x10\n\x08\x64raining\x18\x05 \x01(\x08\x12\x0b\n\x03seq\x18\x06 \x01(\x04\x42\t\n\x07_statusJ\x04\x08\x02\x10\x03\"X\n\rJobAssignment\x12\x19\n\x03job\x18\x01 \x01(\x0b\x32\x0c.livekit.Job\x12\x10\n\x03url\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05token\x18\x03 \x01(\tB\x03\xc0P\x02\x42\x06\n\x04_url\"*\n\x0eJobTermination\x12\x18\n\x06job_id\x18\x01 \x01(\tB\x08\xbaP\x05jobID\"\xb7\x04\n\tAgentHttp\x1ar\n\rAgentEndpoint\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0f\n\x07methods\x18\x02 \x03(\t\x12\x32\n\x04kind\x18\x03 \x01(\x0e\x32$.livekit.AgentHttp.AgentEndpointKind\x12\x0e\n\x06public\x18\x04 \x01(\x08\x1a\x35\n\x15\x41gentEndpointSettings\x12\x10\n\x08protocol\x18\x01 \x01(\rJ\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04\x1a\xc7\x01\n\x0eStreamPreamble\x12\x32\n\x04kind\x18\x01 \x01(\x0e\x32$.livekit.AgentHttp.AgentEndpointKind\x12 \n\nrequest_id\x18\x02 \x01(\tB\x0c\xbaP\trequestID\x12\x12\n\nauthorized\x18\x03 \x01(\x08\x12\r\n\x05route\x18\x04 \x01(\t\x12\x12\n\ntimeout_ms\x18\x05 \x01(\r\x12\x18\n\x0b\x63lient_addr\x18\x06 \x01(\tB\x03\xc0P\x01\x12\x0e\n\x06scheme\x18\x07 \x01(\t\x1a\x18\n\x06GoAway\x12\x0e\n\x06reason\x18\x01 \x01(\t\"/\n\x11\x41gentEndpointKind\x12\x0c\n\x08\x41\x45K_HTTP\x10\x00\x12\x0c\n\x08\x41\x45K_TEXT\x10\x01\"j\n\x13HttpStreamResetCode\x12\r\n\tHSR_ABORT\x10\x00\x12\x0f\n\x0bHSR_REFUSED\x10\x01\x12\x10\n\x0cHSR_INTERNAL\x10\x02\x12\x0f\n\x0bHSR_TIMEOUT\x10\x03\x12\x10\n\x0cHSR_PROTOCOL\x10\x04*<\n\x07JobType\x12\x0b\n\x07JT_ROOM\x10\x00\x12\x10\n\x0cJT_PUBLISHER\x10\x01\x12\x12\n\x0eJT_PARTICIPANT\x10\x02*-\n\x0cWorkerStatus\x12\x10\n\x0cWS_AVAILABLE\x10\x00\x12\x0b\n\x07WS_FULL\x10\x01*\\\n\tJobStatus\x12\x0e\n\nJS_PENDING\x10\x00\x12\x0e\n\nJS_RUNNING\x10\x01\x12\x0e\n\nJS_SUCCESS\x10\x02\x12\r\n\tJS_FAILED\x10\x03\x12\x10\n\x0cJS_CANCELLED\x10\x04*{\n\x0eJobStateReason\x12\x13\n\x0fJSR_UNSPECIFIED\x10\x00\x12\x13\n\x0fJSR_NO_CAPACITY\x10\x01\x12\x13\n\x0fJSR_ROOM_CLOSED\x10\x02\x12\x18\n\x14JSR_DISPATCH_DELETED\x10\x03\x12\x10\n\x0cJSR_RETRYING\x10\x04\x42\x46Z#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13livekit_agent.proto\x12\x07livekit\x1a\x14livekit_models.proto\x1a\x14logger/options.proto\"\xf3\x03\n\x03Job\x12\n\n\x02id\x18\x01 \x01(\t\x12\"\n\x0b\x64ispatch_id\x18\t \x01(\tB\r\xbaP\ndispatchID\x12\x1e\n\x04type\x18\x02 \x01(\x0e\x32\x10.livekit.JobType\x12\x1b\n\x04room\x18\x03 \x01(\x0b\x32\r.livekit.Room\x12\x32\n\x0bparticipant\x18\x04 \x01(\x0b\x32\x18.livekit.ParticipantInfoH\x00\x88\x01\x01\x12\x15\n\tnamespace\x18\x05 \x01(\tB\x02\x18\x01\x12\x15\n\x08metadata\x18\x06 \x01(\tB\x03\xc0P\x01\x12\x12\n\nagent_name\x18\x07 \x01(\t\x12 \n\x05state\x18\x08 \x01(\x0b\x32\x11.livekit.JobState\x12\x18\n\x10\x65nable_recording\x18\n \x01(\x08\x12\x12\n\ndeployment\x18\x0b \x01(\t\x12\x35\n\nattributes\x18\x0c \x03(\x0b\x32\x1c.livekit.Job.AttributesEntryB\x03\xc0P\x01\x12\x18\n\x10\x65nable_redaction\x18\r \x01(\x08\x12\x12\n\ncreated_at\x18\x0e \x01(\x03\x12\x11\n\tthread_id\x18\x0f \x01(\t\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0e\n\x0c_participant\"\x8b\x03\n\x08JobState\x12\"\n\x06status\x18\x01 \x01(\x0e\x32\x12.livekit.JobStatus\x12\r\n\x05\x65rror\x18\x02 \x01(\t\x12\x12\n\nstarted_at\x18\x03 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x04 \x01(\x03\x12\x12\n\nupdated_at\x18\x05 \x01(\x03\x12\x1c\n\x14participant_identity\x18\x06 \x01(\t\x12\x1e\n\tworker_id\x18\x07 \x01(\tB\x0b\xbaP\x08workerID\x12\x1c\n\x08\x61gent_id\x18\x08 \x01(\tB\n\xbaP\x07\x61gentID\x12\'\n\x06reason\x18\t \x01(\x0e\x32\x17.livekit.JobStateReason\x12\x13\n\x0b\x61\x63\x63\x65pted_at\x18\n \x01(\x03\x12\x13\n\x0b\x61ssigned_at\x18\x0b \x01(\x03\x12\x10\n\x08\x61ttempts\x18\x0c \x01(\r\x12\x18\n\x10\x66irst_started_at\x18\r \x01(\x03\x12 \n\x18\x61gent_failed_attempts_ns\x18\x0e \x01(\x03\x12\x15\n\rworkers_asked\x18\x0f \x01(\r\"\xf8\x02\n\rWorkerMessage\x12\x32\n\x08register\x18\x01 \x01(\x0b\x32\x1e.livekit.RegisterWorkerRequestH\x00\x12\x35\n\x0c\x61vailability\x18\x02 \x01(\x0b\x32\x1d.livekit.AvailabilityResponseH\x00\x12\x34\n\rupdate_worker\x18\x03 \x01(\x0b\x32\x1b.livekit.UpdateWorkerStatusH\x00\x12.\n\nupdate_job\x18\x04 \x01(\x0b\x32\x18.livekit.UpdateJobStatusH\x00\x12#\n\x04ping\x18\x05 \x01(\x0b\x32\x13.livekit.WorkerPingH\x00\x12\x33\n\x0csimulate_job\x18\x06 \x01(\x0b\x32\x1b.livekit.SimulateJobRequestH\x00\x12\x31\n\x0bmigrate_job\x18\x07 \x01(\x0b\x32\x1a.livekit.MigrateJobRequestH\x00\x42\t\n\x07message\"\xb6\x02\n\rServerMessage\x12\x33\n\x08register\x18\x01 \x01(\x0b\x32\x1f.livekit.RegisterWorkerResponseH\x00\x12\x34\n\x0c\x61vailability\x18\x02 \x01(\x0b\x32\x1c.livekit.AvailabilityRequestH\x00\x12,\n\nassignment\x18\x03 \x01(\x0b\x32\x16.livekit.JobAssignmentH\x00\x12.\n\x0btermination\x18\x05 \x01(\x0b\x32\x17.livekit.JobTerminationH\x00\x12#\n\x04pong\x18\x04 \x01(\x0b\x32\x13.livekit.WorkerPongH\x00\x12,\n\x07go_away\x18\x06 \x01(\x0b\x32\x19.livekit.AgentHttp.GoAwayH\x00\x42\t\n\x07message\"\x80\x01\n\x12SimulateJobRequest\x12\x1e\n\x04type\x18\x01 \x01(\x0e\x32\x10.livekit.JobType\x12\x1b\n\x04room\x18\x02 \x01(\x0b\x32\r.livekit.Room\x12-\n\x0bparticipant\x18\x03 \x01(\x0b\x32\x18.livekit.ParticipantInfo\"\x1f\n\nWorkerPing\x12\x11\n\ttimestamp\x18\x01 \x01(\x03\"7\n\nWorkerPong\x12\x16\n\x0elast_timestamp\x18\x01 \x01(\x03\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\"\xea\x02\n\x15RegisterWorkerRequest\x12\x1e\n\x04type\x18\x01 \x01(\x0e\x32\x10.livekit.JobType\x12\x12\n\nagent_name\x18\x08 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\t\x12\x15\n\rping_interval\x18\x05 \x01(\r\x12\x16\n\tnamespace\x18\x06 \x01(\tH\x00\x88\x01\x01\x12;\n\x13\x61llowed_permissions\x18\x07 \x01(\x0b\x32\x1e.livekit.ParticipantPermission\x12\x12\n\ndeployment\x18\t \x01(\t\x12\x33\n\tendpoints\x18\n \x03(\x0b\x32 .livekit.AgentHttp.AgentEndpoint\x12\"\n\x0binstance_id\x18\x0b \x01(\tB\r\xbaP\ninstanceID\x12\x19\n\x11\x65ndpoint_protocol\x18\x0c \x01(\rB\x0c\n\n_namespaceJ\x04\x08\x02\x10\x03J\x04\x08\x04\x10\x05\"\xad\x01\n\x16RegisterWorkerResponse\x12\x1e\n\tworker_id\x18\x01 \x01(\tB\x0b\xbaP\x08workerID\x12(\n\x0bserver_info\x18\x03 \x01(\x0b\x32\x13.livekit.ServerInfo\x12\x43\n\x11\x65ndpoint_settings\x18\x04 \x01(\x0b\x32(.livekit.AgentHttp.AgentEndpointSettingsJ\x04\x08\x02\x10\x03\"@\n\x11MigrateJobRequest\x12\x0f\n\x07job_ids\x18\x02 \x03(\t\x12\x1a\n\x04jobs\x18\x03 \x03(\x0b\x32\x0c.livekit.Job\"B\n\x13\x41vailabilityRequest\x12\x19\n\x03job\x18\x01 \x01(\x0b\x32\x0c.livekit.Job\x12\x10\n\x08resuming\x18\x02 \x01(\x08\"\xdd\x02\n\x14\x41vailabilityResponse\x12\x18\n\x06job_id\x18\x01 \x01(\tB\x08\xbaP\x05jobID\x12\x11\n\tavailable\x18\x02 \x01(\x08\x12\x17\n\x0fsupports_resume\x18\x03 \x01(\x08\x12\x11\n\tterminate\x18\x08 \x01(\x08\x12\x18\n\x10participant_name\x18\x04 \x01(\t\x12\x1c\n\x14participant_identity\x18\x05 \x01(\t\x12\x1c\n\x14participant_metadata\x18\x06 \x01(\t\x12X\n\x16participant_attributes\x18\x07 \x03(\x0b\x32\x38.livekit.AvailabilityResponse.ParticipantAttributesEntry\x1a<\n\x1aParticipantAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x8b\x01\n\x0fUpdateJobStatus\x12\x18\n\x06job_id\x18\x01 \x01(\tB\x08\xbaP\x05jobID\x12\"\n\x06status\x18\x02 \x01(\x0e\x32\x12.livekit.JobStatus\x12\r\n\x05\x65rror\x18\x03 \x01(\t\x12+\n\x0bjoin_timing\x18\x04 \x01(\x0b\x32\x16.livekit.JobJoinTiming\"\xd9\x01\n\rJobJoinTiming\x12\x19\n\x11offer_received_us\x18\x01 \x01(\x03\x12\x13\n\x0b\x61\x63\x63\x65pted_us\x18\x02 \x01(\x03\x12\x1e\n\x16\x61ssignment_received_us\x18\x03 \x01(\x03\x12\x13\n\x0blaunched_us\x18\x04 \x01(\x03\x12\x13\n\x0blaunch_warm\x18\x05 \x01(\x08\x12\x1d\n\x15\x65ntrypoint_started_us\x18\x06 \x01(\x03\x12\x19\n\x11\x63onnect_called_us\x18\x07 \x01(\x03\x12\x14\n\x0c\x63onnected_us\x18\x08 \x01(\x03\"\x91\x01\n\x12UpdateWorkerStatus\x12*\n\x06status\x18\x01 \x01(\x0e\x32\x15.livekit.WorkerStatusH\x00\x88\x01\x01\x12\x0c\n\x04load\x18\x03 \x01(\x02\x12\x11\n\tjob_count\x18\x04 \x01(\r\x12\x10\n\x08\x64raining\x18\x05 \x01(\x08\x12\x0b\n\x03seq\x18\x06 \x01(\x04\x42\t\n\x07_statusJ\x04\x08\x02\x10\x03\"X\n\rJobAssignment\x12\x19\n\x03job\x18\x01 \x01(\x0b\x32\x0c.livekit.Job\x12\x10\n\x03url\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05token\x18\x03 \x01(\tB\x03\xc0P\x02\x42\x06\n\x04_url\"*\n\x0eJobTermination\x12\x18\n\x06job_id\x18\x01 \x01(\tB\x08\xbaP\x05jobID\"\xb7\x04\n\tAgentHttp\x1ar\n\rAgentEndpoint\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0f\n\x07methods\x18\x02 \x03(\t\x12\x32\n\x04kind\x18\x03 \x01(\x0e\x32$.livekit.AgentHttp.AgentEndpointKind\x12\x0e\n\x06public\x18\x04 \x01(\x08\x1a\x35\n\x15\x41gentEndpointSettings\x12\x10\n\x08protocol\x18\x01 \x01(\rJ\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04\x1a\xc7\x01\n\x0eStreamPreamble\x12\x32\n\x04kind\x18\x01 \x01(\x0e\x32$.livekit.AgentHttp.AgentEndpointKind\x12 \n\nrequest_id\x18\x02 \x01(\tB\x0c\xbaP\trequestID\x12\x12\n\nauthorized\x18\x03 \x01(\x08\x12\r\n\x05route\x18\x04 \x01(\t\x12\x12\n\ntimeout_ms\x18\x05 \x01(\r\x12\x18\n\x0b\x63lient_addr\x18\x06 \x01(\tB\x03\xc0P\x01\x12\x0e\n\x06scheme\x18\x07 \x01(\t\x1a\x18\n\x06GoAway\x12\x0e\n\x06reason\x18\x01 \x01(\t\"/\n\x11\x41gentEndpointKind\x12\x0c\n\x08\x41\x45K_HTTP\x10\x00\x12\x0c\n\x08\x41\x45K_TEXT\x10\x01\"j\n\x13HttpStreamResetCode\x12\r\n\tHSR_ABORT\x10\x00\x12\x0f\n\x0bHSR_REFUSED\x10\x01\x12\x10\n\x0cHSR_INTERNAL\x10\x02\x12\x0f\n\x0bHSR_TIMEOUT\x10\x03\x12\x10\n\x0cHSR_PROTOCOL\x10\x04*<\n\x07JobType\x12\x0b\n\x07JT_ROOM\x10\x00\x12\x10\n\x0cJT_PUBLISHER\x10\x01\x12\x12\n\x0eJT_PARTICIPANT\x10\x02*-\n\x0cWorkerStatus\x12\x10\n\x0cWS_AVAILABLE\x10\x00\x12\x0b\n\x07WS_FULL\x10\x01*\\\n\tJobStatus\x12\x0e\n\nJS_PENDING\x10\x00\x12\x0e\n\nJS_RUNNING\x10\x01\x12\x0e\n\nJS_SUCCESS\x10\x02\x12\r\n\tJS_FAILED\x10\x03\x12\x10\n\x0cJS_CANCELLED\x10\x04*{\n\x0eJobStateReason\x12\x13\n\x0fJSR_UNSPECIFIED\x10\x00\x12\x13\n\x0fJSR_NO_CAPACITY\x10\x01\x12\x13\n\x0fJSR_ROOM_CLOSED\x10\x02\x12\x18\n\x14JSR_DISPATCH_DELETED\x10\x03\x12\x10\n\x0cJSR_RETRYING\x10\x04\x42\x46Z#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -66,64 +66,64 @@ _globals['_AGENTHTTP_STREAMPREAMBLE'].fields_by_name['request_id']._serialized_options = b'\272P\trequestID' _globals['_AGENTHTTP_STREAMPREAMBLE'].fields_by_name['client_addr']._loaded_options = None _globals['_AGENTHTTP_STREAMPREAMBLE'].fields_by_name['client_addr']._serialized_options = b'\300P\001' - _globals['_JOBTYPE']._serialized_start=4010 - _globals['_JOBTYPE']._serialized_end=4070 - _globals['_WORKERSTATUS']._serialized_start=4072 - _globals['_WORKERSTATUS']._serialized_end=4117 - _globals['_JOBSTATUS']._serialized_start=4119 - _globals['_JOBSTATUS']._serialized_end=4211 - _globals['_JOBSTATEREASON']._serialized_start=4213 - _globals['_JOBSTATEREASON']._serialized_end=4336 + _globals['_JOBTYPE']._serialized_start=4130 + _globals['_JOBTYPE']._serialized_end=4190 + _globals['_WORKERSTATUS']._serialized_start=4192 + _globals['_WORKERSTATUS']._serialized_end=4237 + _globals['_JOBSTATUS']._serialized_start=4239 + _globals['_JOBSTATUS']._serialized_end=4331 + _globals['_JOBSTATEREASON']._serialized_start=4333 + _globals['_JOBSTATEREASON']._serialized_end=4456 _globals['_JOB']._serialized_start=77 - _globals['_JOB']._serialized_end=557 - _globals['_JOB_ATTRIBUTESENTRY']._serialized_start=492 - _globals['_JOB_ATTRIBUTESENTRY']._serialized_end=541 - _globals['_JOBSTATE']._serialized_start=560 - _globals['_JOBSTATE']._serialized_end=854 - _globals['_WORKERMESSAGE']._serialized_start=857 - _globals['_WORKERMESSAGE']._serialized_end=1233 - _globals['_SERVERMESSAGE']._serialized_start=1236 - _globals['_SERVERMESSAGE']._serialized_end=1546 - _globals['_SIMULATEJOBREQUEST']._serialized_start=1549 - _globals['_SIMULATEJOBREQUEST']._serialized_end=1677 - _globals['_WORKERPING']._serialized_start=1679 - _globals['_WORKERPING']._serialized_end=1710 - _globals['_WORKERPONG']._serialized_start=1712 - _globals['_WORKERPONG']._serialized_end=1767 - _globals['_REGISTERWORKERREQUEST']._serialized_start=1770 - _globals['_REGISTERWORKERREQUEST']._serialized_end=2132 - _globals['_REGISTERWORKERRESPONSE']._serialized_start=2135 - _globals['_REGISTERWORKERRESPONSE']._serialized_end=2308 - _globals['_MIGRATEJOBREQUEST']._serialized_start=2310 - _globals['_MIGRATEJOBREQUEST']._serialized_end=2374 - _globals['_AVAILABILITYREQUEST']._serialized_start=2376 - _globals['_AVAILABILITYREQUEST']._serialized_end=2442 - _globals['_AVAILABILITYRESPONSE']._serialized_start=2445 - _globals['_AVAILABILITYRESPONSE']._serialized_end=2794 - _globals['_AVAILABILITYRESPONSE_PARTICIPANTATTRIBUTESENTRY']._serialized_start=2734 - _globals['_AVAILABILITYRESPONSE_PARTICIPANTATTRIBUTESENTRY']._serialized_end=2794 - _globals['_UPDATEJOBSTATUS']._serialized_start=2797 - _globals['_UPDATEJOBSTATUS']._serialized_end=2936 - _globals['_JOBJOINTIMING']._serialized_start=2939 - _globals['_JOBJOINTIMING']._serialized_end=3156 - _globals['_UPDATEWORKERSTATUS']._serialized_start=3159 - _globals['_UPDATEWORKERSTATUS']._serialized_end=3304 - _globals['_JOBASSIGNMENT']._serialized_start=3306 - _globals['_JOBASSIGNMENT']._serialized_end=3394 - _globals['_JOBTERMINATION']._serialized_start=3396 - _globals['_JOBTERMINATION']._serialized_end=3438 - _globals['_AGENTHTTP']._serialized_start=3441 - _globals['_AGENTHTTP']._serialized_end=4008 - _globals['_AGENTHTTP_AGENTENDPOINT']._serialized_start=3454 - _globals['_AGENTHTTP_AGENTENDPOINT']._serialized_end=3568 - _globals['_AGENTHTTP_AGENTENDPOINTSETTINGS']._serialized_start=3570 - _globals['_AGENTHTTP_AGENTENDPOINTSETTINGS']._serialized_end=3623 - _globals['_AGENTHTTP_STREAMPREAMBLE']._serialized_start=3626 - _globals['_AGENTHTTP_STREAMPREAMBLE']._serialized_end=3825 - _globals['_AGENTHTTP_GOAWAY']._serialized_start=3827 - _globals['_AGENTHTTP_GOAWAY']._serialized_end=3851 - _globals['_AGENTHTTP_AGENTENDPOINTKIND']._serialized_start=3853 - _globals['_AGENTHTTP_AGENTENDPOINTKIND']._serialized_end=3900 - _globals['_AGENTHTTP_HTTPSTREAMRESETCODE']._serialized_start=3902 - _globals['_AGENTHTTP_HTTPSTREAMRESETCODE']._serialized_end=4008 + _globals['_JOB']._serialized_end=576 + _globals['_JOB_ATTRIBUTESENTRY']._serialized_start=511 + _globals['_JOB_ATTRIBUTESENTRY']._serialized_end=560 + _globals['_JOBSTATE']._serialized_start=579 + _globals['_JOBSTATE']._serialized_end=974 + _globals['_WORKERMESSAGE']._serialized_start=977 + _globals['_WORKERMESSAGE']._serialized_end=1353 + _globals['_SERVERMESSAGE']._serialized_start=1356 + _globals['_SERVERMESSAGE']._serialized_end=1666 + _globals['_SIMULATEJOBREQUEST']._serialized_start=1669 + _globals['_SIMULATEJOBREQUEST']._serialized_end=1797 + _globals['_WORKERPING']._serialized_start=1799 + _globals['_WORKERPING']._serialized_end=1830 + _globals['_WORKERPONG']._serialized_start=1832 + _globals['_WORKERPONG']._serialized_end=1887 + _globals['_REGISTERWORKERREQUEST']._serialized_start=1890 + _globals['_REGISTERWORKERREQUEST']._serialized_end=2252 + _globals['_REGISTERWORKERRESPONSE']._serialized_start=2255 + _globals['_REGISTERWORKERRESPONSE']._serialized_end=2428 + _globals['_MIGRATEJOBREQUEST']._serialized_start=2430 + _globals['_MIGRATEJOBREQUEST']._serialized_end=2494 + _globals['_AVAILABILITYREQUEST']._serialized_start=2496 + _globals['_AVAILABILITYREQUEST']._serialized_end=2562 + _globals['_AVAILABILITYRESPONSE']._serialized_start=2565 + _globals['_AVAILABILITYRESPONSE']._serialized_end=2914 + _globals['_AVAILABILITYRESPONSE_PARTICIPANTATTRIBUTESENTRY']._serialized_start=2854 + _globals['_AVAILABILITYRESPONSE_PARTICIPANTATTRIBUTESENTRY']._serialized_end=2914 + _globals['_UPDATEJOBSTATUS']._serialized_start=2917 + _globals['_UPDATEJOBSTATUS']._serialized_end=3056 + _globals['_JOBJOINTIMING']._serialized_start=3059 + _globals['_JOBJOINTIMING']._serialized_end=3276 + _globals['_UPDATEWORKERSTATUS']._serialized_start=3279 + _globals['_UPDATEWORKERSTATUS']._serialized_end=3424 + _globals['_JOBASSIGNMENT']._serialized_start=3426 + _globals['_JOBASSIGNMENT']._serialized_end=3514 + _globals['_JOBTERMINATION']._serialized_start=3516 + _globals['_JOBTERMINATION']._serialized_end=3558 + _globals['_AGENTHTTP']._serialized_start=3561 + _globals['_AGENTHTTP']._serialized_end=4128 + _globals['_AGENTHTTP_AGENTENDPOINT']._serialized_start=3574 + _globals['_AGENTHTTP_AGENTENDPOINT']._serialized_end=3688 + _globals['_AGENTHTTP_AGENTENDPOINTSETTINGS']._serialized_start=3690 + _globals['_AGENTHTTP_AGENTENDPOINTSETTINGS']._serialized_end=3743 + _globals['_AGENTHTTP_STREAMPREAMBLE']._serialized_start=3746 + _globals['_AGENTHTTP_STREAMPREAMBLE']._serialized_end=3945 + _globals['_AGENTHTTP_GOAWAY']._serialized_start=3947 + _globals['_AGENTHTTP_GOAWAY']._serialized_end=3971 + _globals['_AGENTHTTP_AGENTENDPOINTKIND']._serialized_start=3973 + _globals['_AGENTHTTP_AGENTENDPOINTKIND']._serialized_end=4020 + _globals['_AGENTHTTP_HTTPSTREAMRESETCODE']._serialized_start=4022 + _globals['_AGENTHTTP_HTTPSTREAMRESETCODE']._serialized_end=4128 # @@protoc_insertion_point(module_scope) diff --git a/livekit-protocol/livekit/protocol/agent.pyi b/livekit-protocol/livekit/protocol/agent.pyi index 174ccd1c..6f11e7a7 100644 --- a/livekit-protocol/livekit/protocol/agent.pyi +++ b/livekit-protocol/livekit/protocol/agent.pyi @@ -51,7 +51,7 @@ JSR_DISPATCH_DELETED: JobStateReason JSR_RETRYING: JobStateReason class Job(_message.Message): - __slots__ = ("id", "dispatch_id", "type", "room", "participant", "namespace", "metadata", "agent_name", "state", "enable_recording", "deployment", "attributes", "enable_redaction", "created_at") + __slots__ = ("id", "dispatch_id", "type", "room", "participant", "namespace", "metadata", "agent_name", "state", "enable_recording", "deployment", "attributes", "enable_redaction", "created_at", "thread_id") class AttributesEntry(_message.Message): __slots__ = ("key", "value") KEY_FIELD_NUMBER: _ClassVar[int] @@ -73,6 +73,7 @@ class Job(_message.Message): ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] ENABLE_REDACTION_FIELD_NUMBER: _ClassVar[int] CREATED_AT_FIELD_NUMBER: _ClassVar[int] + THREAD_ID_FIELD_NUMBER: _ClassVar[int] id: str dispatch_id: str type: JobType @@ -87,10 +88,11 @@ class Job(_message.Message): attributes: _containers.ScalarMap[str, str] enable_redaction: bool created_at: int - def __init__(self, id: _Optional[str] = ..., dispatch_id: _Optional[str] = ..., type: _Optional[_Union[JobType, str]] = ..., room: _Optional[_Union[_models.Room, _Mapping]] = ..., participant: _Optional[_Union[_models.ParticipantInfo, _Mapping]] = ..., namespace: _Optional[str] = ..., metadata: _Optional[str] = ..., agent_name: _Optional[str] = ..., state: _Optional[_Union[JobState, _Mapping]] = ..., enable_recording: bool = ..., deployment: _Optional[str] = ..., attributes: _Optional[_Mapping[str, str]] = ..., enable_redaction: bool = ..., created_at: _Optional[int] = ...) -> None: ... + thread_id: str + def __init__(self, id: _Optional[str] = ..., dispatch_id: _Optional[str] = ..., type: _Optional[_Union[JobType, str]] = ..., room: _Optional[_Union[_models.Room, _Mapping]] = ..., participant: _Optional[_Union[_models.ParticipantInfo, _Mapping]] = ..., namespace: _Optional[str] = ..., metadata: _Optional[str] = ..., agent_name: _Optional[str] = ..., state: _Optional[_Union[JobState, _Mapping]] = ..., enable_recording: bool = ..., deployment: _Optional[str] = ..., attributes: _Optional[_Mapping[str, str]] = ..., enable_redaction: bool = ..., created_at: _Optional[int] = ..., thread_id: _Optional[str] = ...) -> None: ... class JobState(_message.Message): - __slots__ = ("status", "error", "started_at", "ended_at", "updated_at", "participant_identity", "worker_id", "agent_id", "reason", "accepted_at", "assigned_at") + __slots__ = ("status", "error", "started_at", "ended_at", "updated_at", "participant_identity", "worker_id", "agent_id", "reason", "accepted_at", "assigned_at", "attempts", "first_started_at", "agent_failed_attempts_ns", "workers_asked") STATUS_FIELD_NUMBER: _ClassVar[int] ERROR_FIELD_NUMBER: _ClassVar[int] STARTED_AT_FIELD_NUMBER: _ClassVar[int] @@ -102,6 +104,10 @@ class JobState(_message.Message): REASON_FIELD_NUMBER: _ClassVar[int] ACCEPTED_AT_FIELD_NUMBER: _ClassVar[int] ASSIGNED_AT_FIELD_NUMBER: _ClassVar[int] + ATTEMPTS_FIELD_NUMBER: _ClassVar[int] + FIRST_STARTED_AT_FIELD_NUMBER: _ClassVar[int] + AGENT_FAILED_ATTEMPTS_NS_FIELD_NUMBER: _ClassVar[int] + WORKERS_ASKED_FIELD_NUMBER: _ClassVar[int] status: JobStatus error: str started_at: int @@ -113,7 +119,11 @@ class JobState(_message.Message): reason: JobStateReason accepted_at: int assigned_at: int - def __init__(self, status: _Optional[_Union[JobStatus, str]] = ..., error: _Optional[str] = ..., started_at: _Optional[int] = ..., ended_at: _Optional[int] = ..., updated_at: _Optional[int] = ..., participant_identity: _Optional[str] = ..., worker_id: _Optional[str] = ..., agent_id: _Optional[str] = ..., reason: _Optional[_Union[JobStateReason, str]] = ..., accepted_at: _Optional[int] = ..., assigned_at: _Optional[int] = ...) -> None: ... + attempts: int + first_started_at: int + agent_failed_attempts_ns: int + workers_asked: int + def __init__(self, status: _Optional[_Union[JobStatus, str]] = ..., error: _Optional[str] = ..., started_at: _Optional[int] = ..., ended_at: _Optional[int] = ..., updated_at: _Optional[int] = ..., participant_identity: _Optional[str] = ..., worker_id: _Optional[str] = ..., agent_id: _Optional[str] = ..., reason: _Optional[_Union[JobStateReason, str]] = ..., accepted_at: _Optional[int] = ..., assigned_at: _Optional[int] = ..., attempts: _Optional[int] = ..., first_started_at: _Optional[int] = ..., agent_failed_attempts_ns: _Optional[int] = ..., workers_asked: _Optional[int] = ...) -> None: ... class WorkerMessage(_message.Message): __slots__ = ("register", "availability", "update_worker", "update_job", "ping", "simulate_job", "migrate_job") diff --git a/livekit-protocol/livekit/protocol/agent_dispatch.py b/livekit-protocol/livekit/protocol/agent_dispatch.py index f5d7a619..9dafbb4c 100644 --- a/livekit-protocol/livekit/protocol/agent_dispatch.py +++ b/livekit-protocol/livekit/protocol/agent_dispatch.py @@ -26,7 +26,7 @@ from .logger_pb import options as logger_dot_options__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1clivekit_agent_dispatch.proto\x12\x07livekit\x1a\x13livekit_agent.proto\x1a\x14logger/options.proto\"\xdf\x02\n\x1a\x43reateAgentDispatchRequest\x12\x12\n\nagent_name\x18\x01 \x01(\t\x12\x0c\n\x04room\x18\x02 \x01(\t\x12\x36\n\x08metadata\x18\x03 \x01(\tB$\xb2P\x1e\xc0P\x01\x12\x31\n\x0erestart_policy\x18\x04 \x01(\x0e\x32\x19.livekit.JobRestartPolicy\x12\x12\n\ndeployment\x18\x05 \x01(\t\x12m\n\nattributes\x18\x06 \x03(\x0b\x32\x33.livekit.CreateAgentDispatchRequest.AttributesEntryB$\xb2P\x1e\xc0P\x01\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xbf\x02\n\x11RoomAgentDispatch\x12\x12\n\nagent_name\x18\x01 \x01(\t\x12\x36\n\x08metadata\x18\x02 \x01(\tB$\xb2P\x1e\xc0P\x01\x12\x31\n\x0erestart_policy\x18\x03 \x01(\x0e\x32\x19.livekit.JobRestartPolicy\x12\x12\n\ndeployment\x18\x04 \x01(\t\x12\x64\n\nattributes\x18\x05 \x03(\x0b\x32*.livekit.RoomAgentDispatch.AttributesEntryB$\xb2P\x1e\xc0P\x01\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"N\n\x1a\x44\x65leteAgentDispatchRequest\x12\"\n\x0b\x64ispatch_id\x18\x01 \x01(\tB\r\xbaP\ndispatchID\x12\x0c\n\x04room\x18\x02 \x01(\t\"L\n\x18ListAgentDispatchRequest\x12\"\n\x0b\x64ispatch_id\x18\x01 \x01(\tB\r\xbaP\ndispatchID\x12\x0c\n\x04room\x18\x02 \x01(\t\"M\n\x19ListAgentDispatchResponse\x12\x30\n\x10\x61gent_dispatches\x18\x01 \x03(\x0b\x32\x16.livekit.AgentDispatch\"\xfd\x02\n\rAgentDispatch\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\nagent_name\x18\x02 \x01(\t\x12\x0c\n\x04room\x18\x03 \x01(\t\x12\x36\n\x08metadata\x18\x04 \x01(\tB$\xb2P\x1e\xc0P\x01\x12*\n\x05state\x18\x05 \x01(\x0b\x32\x1b.livekit.AgentDispatchState\x12\x31\n\x0erestart_policy\x18\x06 \x01(\x0e\x32\x19.livekit.JobRestartPolicy\x12\x12\n\ndeployment\x18\x07 \x01(\t\x12`\n\nattributes\x18\x08 \x03(\x0b\x32&.livekit.AgentDispatch.AttributesEntryB$\xb2P\x1e\xc0P\x01\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x88\x01\n\x12\x41gentDispatchState\x12\x1a\n\x04jobs\x18\x01 \x03(\x0b\x32\x0c.livekit.Job\x12\x12\n\ncreated_at\x18\x02 \x01(\x03\x12\x12\n\ndeleted_at\x18\x03 \x01(\x03\x12.\n\x07trigger\x18\x04 \x01(\x0e\x32\x1d.livekit.AgentDispatchTrigger*5\n\x10JobRestartPolicy\x12\x12\n\x0eJRP_ON_FAILURE\x10\x00\x12\r\n\tJRP_NEVER\x10\x01*a\n\x14\x41gentDispatchTrigger\x12\x13\n\x0f\x41\x44T_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x41\x44T_JOIN\x10\x01\x12\x10\n\x0c\x41\x44T_ROOM_API\x10\x02\x12\x14\n\x10\x41\x44T_DISPATCH_API\x10\x03\x32\x8b\x02\n\x14\x41gentDispatchService\x12M\n\x0e\x43reateDispatch\x12#.livekit.CreateAgentDispatchRequest\x1a\x16.livekit.AgentDispatch\x12M\n\x0e\x44\x65leteDispatch\x12#.livekit.DeleteAgentDispatchRequest\x1a\x16.livekit.AgentDispatch\x12U\n\x0cListDispatch\x12!.livekit.ListAgentDispatchRequest\x1a\".livekit.ListAgentDispatchResponseBFZ#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1clivekit_agent_dispatch.proto\x12\x07livekit\x1a\x13livekit_agent.proto\x1a\x14logger/options.proto\"\xf2\x02\n\x1a\x43reateAgentDispatchRequest\x12\x12\n\nagent_name\x18\x01 \x01(\t\x12\x0c\n\x04room\x18\x02 \x01(\t\x12\x36\n\x08metadata\x18\x03 \x01(\tB$\xb2P\x1e\xc0P\x01\x12\x31\n\x0erestart_policy\x18\x04 \x01(\x0e\x32\x19.livekit.JobRestartPolicy\x12\x12\n\ndeployment\x18\x05 \x01(\t\x12m\n\nattributes\x18\x06 \x03(\x0b\x32\x33.livekit.CreateAgentDispatchRequest.AttributesEntryB$\xb2P\x1e\xc0P\x01\x12\x11\n\tthread_id\x18\x07 \x01(\t\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xd2\x02\n\x11RoomAgentDispatch\x12\x12\n\nagent_name\x18\x01 \x01(\t\x12\x36\n\x08metadata\x18\x02 \x01(\tB$\xb2P\x1e\xc0P\x01\x12\x31\n\x0erestart_policy\x18\x03 \x01(\x0e\x32\x19.livekit.JobRestartPolicy\x12\x12\n\ndeployment\x18\x04 \x01(\t\x12\x64\n\nattributes\x18\x05 \x03(\x0b\x32*.livekit.RoomAgentDispatch.AttributesEntryB$\xb2P\x1e\xc0P\x01\x12\x11\n\tthread_id\x18\x06 \x01(\t\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"N\n\x1a\x44\x65leteAgentDispatchRequest\x12\"\n\x0b\x64ispatch_id\x18\x01 \x01(\tB\r\xbaP\ndispatchID\x12\x0c\n\x04room\x18\x02 \x01(\t\"L\n\x18ListAgentDispatchRequest\x12\"\n\x0b\x64ispatch_id\x18\x01 \x01(\tB\r\xbaP\ndispatchID\x12\x0c\n\x04room\x18\x02 \x01(\t\"M\n\x19ListAgentDispatchResponse\x12\x30\n\x10\x61gent_dispatches\x18\x01 \x03(\x0b\x32\x16.livekit.AgentDispatch\"\x90\x03\n\rAgentDispatch\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\nagent_name\x18\x02 \x01(\t\x12\x0c\n\x04room\x18\x03 \x01(\t\x12\x36\n\x08metadata\x18\x04 \x01(\tB$\xb2P\x1e\xc0P\x01\x12*\n\x05state\x18\x05 \x01(\x0b\x32\x1b.livekit.AgentDispatchState\x12\x31\n\x0erestart_policy\x18\x06 \x01(\x0e\x32\x19.livekit.JobRestartPolicy\x12\x12\n\ndeployment\x18\x07 \x01(\t\x12`\n\nattributes\x18\x08 \x03(\x0b\x32&.livekit.AgentDispatch.AttributesEntryB$\xb2P\x1e\xc0P\x01\x12\x11\n\tthread_id\x18\t \x01(\t\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x88\x01\n\x12\x41gentDispatchState\x12\x1a\n\x04jobs\x18\x01 \x03(\x0b\x32\x0c.livekit.Job\x12\x12\n\ncreated_at\x18\x02 \x01(\x03\x12\x12\n\ndeleted_at\x18\x03 \x01(\x03\x12.\n\x07trigger\x18\x04 \x01(\x0e\x32\x1d.livekit.AgentDispatchTrigger*5\n\x10JobRestartPolicy\x12\x12\n\x0eJRP_ON_FAILURE\x10\x00\x12\r\n\tJRP_NEVER\x10\x01*a\n\x14\x41gentDispatchTrigger\x12\x13\n\x0f\x41\x44T_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x41\x44T_JOIN\x10\x01\x12\x10\n\x0c\x41\x44T_ROOM_API\x10\x02\x12\x14\n\x10\x41\x44T_DISPATCH_API\x10\x03\x32\x8b\x02\n\x14\x41gentDispatchService\x12M\n\x0e\x43reateDispatch\x12#.livekit.CreateAgentDispatchRequest\x1a\x16.livekit.AgentDispatch\x12M\n\x0e\x44\x65leteDispatch\x12#.livekit.DeleteAgentDispatchRequest\x1a\x16.livekit.AgentDispatch\x12U\n\x0cListDispatch\x12!.livekit.ListAgentDispatchRequest\x1a\".livekit.ListAgentDispatchResponseBFZ#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -56,30 +56,30 @@ _globals['_AGENTDISPATCH'].fields_by_name['metadata']._serialized_options = b'\262P\036\300P\001' _globals['_AGENTDISPATCH'].fields_by_name['attributes']._loaded_options = None _globals['_AGENTDISPATCH'].fields_by_name['attributes']._serialized_options = b'\262P\036\300P\001' - _globals['_JOBRESTARTPOLICY']._serialized_start=1520 - _globals['_JOBRESTARTPOLICY']._serialized_end=1573 - _globals['_AGENTDISPATCHTRIGGER']._serialized_start=1575 - _globals['_AGENTDISPATCHTRIGGER']._serialized_end=1672 + _globals['_JOBRESTARTPOLICY']._serialized_start=1577 + _globals['_JOBRESTARTPOLICY']._serialized_end=1630 + _globals['_AGENTDISPATCHTRIGGER']._serialized_start=1632 + _globals['_AGENTDISPATCHTRIGGER']._serialized_end=1729 _globals['_CREATEAGENTDISPATCHREQUEST']._serialized_start=85 - _globals['_CREATEAGENTDISPATCHREQUEST']._serialized_end=436 - _globals['_CREATEAGENTDISPATCHREQUEST_ATTRIBUTESENTRY']._serialized_start=387 - _globals['_CREATEAGENTDISPATCHREQUEST_ATTRIBUTESENTRY']._serialized_end=436 - _globals['_ROOMAGENTDISPATCH']._serialized_start=439 - _globals['_ROOMAGENTDISPATCH']._serialized_end=758 - _globals['_ROOMAGENTDISPATCH_ATTRIBUTESENTRY']._serialized_start=387 - _globals['_ROOMAGENTDISPATCH_ATTRIBUTESENTRY']._serialized_end=436 - _globals['_DELETEAGENTDISPATCHREQUEST']._serialized_start=760 - _globals['_DELETEAGENTDISPATCHREQUEST']._serialized_end=838 - _globals['_LISTAGENTDISPATCHREQUEST']._serialized_start=840 - _globals['_LISTAGENTDISPATCHREQUEST']._serialized_end=916 - _globals['_LISTAGENTDISPATCHRESPONSE']._serialized_start=918 - _globals['_LISTAGENTDISPATCHRESPONSE']._serialized_end=995 - _globals['_AGENTDISPATCH']._serialized_start=998 - _globals['_AGENTDISPATCH']._serialized_end=1379 - _globals['_AGENTDISPATCH_ATTRIBUTESENTRY']._serialized_start=387 - _globals['_AGENTDISPATCH_ATTRIBUTESENTRY']._serialized_end=436 - _globals['_AGENTDISPATCHSTATE']._serialized_start=1382 - _globals['_AGENTDISPATCHSTATE']._serialized_end=1518 - _globals['_AGENTDISPATCHSERVICE']._serialized_start=1675 - _globals['_AGENTDISPATCHSERVICE']._serialized_end=1942 + _globals['_CREATEAGENTDISPATCHREQUEST']._serialized_end=455 + _globals['_CREATEAGENTDISPATCHREQUEST_ATTRIBUTESENTRY']._serialized_start=406 + _globals['_CREATEAGENTDISPATCHREQUEST_ATTRIBUTESENTRY']._serialized_end=455 + _globals['_ROOMAGENTDISPATCH']._serialized_start=458 + _globals['_ROOMAGENTDISPATCH']._serialized_end=796 + _globals['_ROOMAGENTDISPATCH_ATTRIBUTESENTRY']._serialized_start=406 + _globals['_ROOMAGENTDISPATCH_ATTRIBUTESENTRY']._serialized_end=455 + _globals['_DELETEAGENTDISPATCHREQUEST']._serialized_start=798 + _globals['_DELETEAGENTDISPATCHREQUEST']._serialized_end=876 + _globals['_LISTAGENTDISPATCHREQUEST']._serialized_start=878 + _globals['_LISTAGENTDISPATCHREQUEST']._serialized_end=954 + _globals['_LISTAGENTDISPATCHRESPONSE']._serialized_start=956 + _globals['_LISTAGENTDISPATCHRESPONSE']._serialized_end=1033 + _globals['_AGENTDISPATCH']._serialized_start=1036 + _globals['_AGENTDISPATCH']._serialized_end=1436 + _globals['_AGENTDISPATCH_ATTRIBUTESENTRY']._serialized_start=406 + _globals['_AGENTDISPATCH_ATTRIBUTESENTRY']._serialized_end=455 + _globals['_AGENTDISPATCHSTATE']._serialized_start=1439 + _globals['_AGENTDISPATCHSTATE']._serialized_end=1575 + _globals['_AGENTDISPATCHSERVICE']._serialized_start=1732 + _globals['_AGENTDISPATCHSERVICE']._serialized_end=1999 # @@protoc_insertion_point(module_scope) diff --git a/livekit-protocol/livekit/protocol/agent_dispatch.pyi b/livekit-protocol/livekit/protocol/agent_dispatch.pyi index 70fc8061..05bd383e 100644 --- a/livekit-protocol/livekit/protocol/agent_dispatch.pyi +++ b/livekit-protocol/livekit/protocol/agent_dispatch.pyi @@ -27,7 +27,7 @@ ADT_ROOM_API: AgentDispatchTrigger ADT_DISPATCH_API: AgentDispatchTrigger class CreateAgentDispatchRequest(_message.Message): - __slots__ = ("agent_name", "room", "metadata", "restart_policy", "deployment", "attributes") + __slots__ = ("agent_name", "room", "metadata", "restart_policy", "deployment", "attributes", "thread_id") class AttributesEntry(_message.Message): __slots__ = ("key", "value") KEY_FIELD_NUMBER: _ClassVar[int] @@ -41,16 +41,18 @@ class CreateAgentDispatchRequest(_message.Message): RESTART_POLICY_FIELD_NUMBER: _ClassVar[int] DEPLOYMENT_FIELD_NUMBER: _ClassVar[int] ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] + THREAD_ID_FIELD_NUMBER: _ClassVar[int] agent_name: str room: str metadata: str restart_policy: JobRestartPolicy deployment: str attributes: _containers.ScalarMap[str, str] - def __init__(self, agent_name: _Optional[str] = ..., room: _Optional[str] = ..., metadata: _Optional[str] = ..., restart_policy: _Optional[_Union[JobRestartPolicy, str]] = ..., deployment: _Optional[str] = ..., attributes: _Optional[_Mapping[str, str]] = ...) -> None: ... + thread_id: str + def __init__(self, agent_name: _Optional[str] = ..., room: _Optional[str] = ..., metadata: _Optional[str] = ..., restart_policy: _Optional[_Union[JobRestartPolicy, str]] = ..., deployment: _Optional[str] = ..., attributes: _Optional[_Mapping[str, str]] = ..., thread_id: _Optional[str] = ...) -> None: ... class RoomAgentDispatch(_message.Message): - __slots__ = ("agent_name", "metadata", "restart_policy", "deployment", "attributes") + __slots__ = ("agent_name", "metadata", "restart_policy", "deployment", "attributes", "thread_id") class AttributesEntry(_message.Message): __slots__ = ("key", "value") KEY_FIELD_NUMBER: _ClassVar[int] @@ -63,12 +65,14 @@ class RoomAgentDispatch(_message.Message): RESTART_POLICY_FIELD_NUMBER: _ClassVar[int] DEPLOYMENT_FIELD_NUMBER: _ClassVar[int] ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] + THREAD_ID_FIELD_NUMBER: _ClassVar[int] agent_name: str metadata: str restart_policy: JobRestartPolicy deployment: str attributes: _containers.ScalarMap[str, str] - def __init__(self, agent_name: _Optional[str] = ..., metadata: _Optional[str] = ..., restart_policy: _Optional[_Union[JobRestartPolicy, str]] = ..., deployment: _Optional[str] = ..., attributes: _Optional[_Mapping[str, str]] = ...) -> None: ... + thread_id: str + def __init__(self, agent_name: _Optional[str] = ..., metadata: _Optional[str] = ..., restart_policy: _Optional[_Union[JobRestartPolicy, str]] = ..., deployment: _Optional[str] = ..., attributes: _Optional[_Mapping[str, str]] = ..., thread_id: _Optional[str] = ...) -> None: ... class DeleteAgentDispatchRequest(_message.Message): __slots__ = ("dispatch_id", "room") @@ -93,7 +97,7 @@ class ListAgentDispatchResponse(_message.Message): def __init__(self, agent_dispatches: _Optional[_Iterable[_Union[AgentDispatch, _Mapping]]] = ...) -> None: ... class AgentDispatch(_message.Message): - __slots__ = ("id", "agent_name", "room", "metadata", "state", "restart_policy", "deployment", "attributes") + __slots__ = ("id", "agent_name", "room", "metadata", "state", "restart_policy", "deployment", "attributes", "thread_id") class AttributesEntry(_message.Message): __slots__ = ("key", "value") KEY_FIELD_NUMBER: _ClassVar[int] @@ -109,6 +113,7 @@ class AgentDispatch(_message.Message): RESTART_POLICY_FIELD_NUMBER: _ClassVar[int] DEPLOYMENT_FIELD_NUMBER: _ClassVar[int] ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] + THREAD_ID_FIELD_NUMBER: _ClassVar[int] id: str agent_name: str room: str @@ -117,7 +122,8 @@ class AgentDispatch(_message.Message): restart_policy: JobRestartPolicy deployment: str attributes: _containers.ScalarMap[str, str] - def __init__(self, id: _Optional[str] = ..., agent_name: _Optional[str] = ..., room: _Optional[str] = ..., metadata: _Optional[str] = ..., state: _Optional[_Union[AgentDispatchState, _Mapping]] = ..., restart_policy: _Optional[_Union[JobRestartPolicy, str]] = ..., deployment: _Optional[str] = ..., attributes: _Optional[_Mapping[str, str]] = ...) -> None: ... + thread_id: str + def __init__(self, id: _Optional[str] = ..., agent_name: _Optional[str] = ..., room: _Optional[str] = ..., metadata: _Optional[str] = ..., state: _Optional[_Union[AgentDispatchState, _Mapping]] = ..., restart_policy: _Optional[_Union[JobRestartPolicy, str]] = ..., deployment: _Optional[str] = ..., attributes: _Optional[_Mapping[str, str]] = ..., thread_id: _Optional[str] = ...) -> None: ... class AgentDispatchState(_message.Message): __slots__ = ("jobs", "created_at", "deleted_at", "trigger") diff --git a/livekit-protocol/protocol b/livekit-protocol/protocol index 868ecd58..b499314e 160000 --- a/livekit-protocol/protocol +++ b/livekit-protocol/protocol @@ -1 +1 @@ -Subproject commit 868ecd58e68880f138d313cc1c234db8d168aa91 +Subproject commit b499314eeb9a7afceddcd734de136071bf3dc03c