diff --git a/livekit-protocol/livekit/protocol/agent.py b/livekit-protocol/livekit/protocol/agent.py index 8d104b87..1693c3ae 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\"\xcc\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\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\"\xfc\x01\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\"\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\"^\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\"\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\"\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') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -66,62 +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=3682 - _globals['_JOBTYPE']._serialized_end=3742 - _globals['_WORKERSTATUS']._serialized_start=3744 - _globals['_WORKERSTATUS']._serialized_end=3789 - _globals['_JOBSTATUS']._serialized_start=3791 - _globals['_JOBSTATUS']._serialized_end=3883 - _globals['_JOBSTATEREASON']._serialized_start=3885 - _globals['_JOBSTATEREASON']._serialized_end=4008 + _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['_JOB']._serialized_start=77 - _globals['_JOB']._serialized_end=537 - _globals['_JOB_ATTRIBUTESENTRY']._serialized_start=472 - _globals['_JOB_ATTRIBUTESENTRY']._serialized_end=521 - _globals['_JOBSTATE']._serialized_start=540 - _globals['_JOBSTATE']._serialized_end=792 - _globals['_WORKERMESSAGE']._serialized_start=795 - _globals['_WORKERMESSAGE']._serialized_end=1171 - _globals['_SERVERMESSAGE']._serialized_start=1174 - _globals['_SERVERMESSAGE']._serialized_end=1484 - _globals['_SIMULATEJOBREQUEST']._serialized_start=1487 - _globals['_SIMULATEJOBREQUEST']._serialized_end=1615 - _globals['_WORKERPING']._serialized_start=1617 - _globals['_WORKERPING']._serialized_end=1648 - _globals['_WORKERPONG']._serialized_start=1650 - _globals['_WORKERPONG']._serialized_end=1705 - _globals['_REGISTERWORKERREQUEST']._serialized_start=1708 - _globals['_REGISTERWORKERREQUEST']._serialized_end=2070 - _globals['_REGISTERWORKERRESPONSE']._serialized_start=2073 - _globals['_REGISTERWORKERRESPONSE']._serialized_end=2246 - _globals['_MIGRATEJOBREQUEST']._serialized_start=2248 - _globals['_MIGRATEJOBREQUEST']._serialized_end=2312 - _globals['_AVAILABILITYREQUEST']._serialized_start=2314 - _globals['_AVAILABILITYREQUEST']._serialized_end=2380 - _globals['_AVAILABILITYRESPONSE']._serialized_start=2383 - _globals['_AVAILABILITYRESPONSE']._serialized_end=2732 - _globals['_AVAILABILITYRESPONSE_PARTICIPANTATTRIBUTESENTRY']._serialized_start=2672 - _globals['_AVAILABILITYRESPONSE_PARTICIPANTATTRIBUTESENTRY']._serialized_end=2732 - _globals['_UPDATEJOBSTATUS']._serialized_start=2734 - _globals['_UPDATEJOBSTATUS']._serialized_end=2828 - _globals['_UPDATEWORKERSTATUS']._serialized_start=2831 - _globals['_UPDATEWORKERSTATUS']._serialized_end=2976 - _globals['_JOBASSIGNMENT']._serialized_start=2978 - _globals['_JOBASSIGNMENT']._serialized_end=3066 - _globals['_JOBTERMINATION']._serialized_start=3068 - _globals['_JOBTERMINATION']._serialized_end=3110 - _globals['_AGENTHTTP']._serialized_start=3113 - _globals['_AGENTHTTP']._serialized_end=3680 - _globals['_AGENTHTTP_AGENTENDPOINT']._serialized_start=3126 - _globals['_AGENTHTTP_AGENTENDPOINT']._serialized_end=3240 - _globals['_AGENTHTTP_AGENTENDPOINTSETTINGS']._serialized_start=3242 - _globals['_AGENTHTTP_AGENTENDPOINTSETTINGS']._serialized_end=3295 - _globals['_AGENTHTTP_STREAMPREAMBLE']._serialized_start=3298 - _globals['_AGENTHTTP_STREAMPREAMBLE']._serialized_end=3497 - _globals['_AGENTHTTP_GOAWAY']._serialized_start=3499 - _globals['_AGENTHTTP_GOAWAY']._serialized_end=3523 - _globals['_AGENTHTTP_AGENTENDPOINTKIND']._serialized_start=3525 - _globals['_AGENTHTTP_AGENTENDPOINTKIND']._serialized_end=3572 - _globals['_AGENTHTTP_HTTPSTREAMRESETCODE']._serialized_start=3574 - _globals['_AGENTHTTP_HTTPSTREAMRESETCODE']._serialized_end=3680 + _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 # @@protoc_insertion_point(module_scope) diff --git a/livekit-protocol/livekit/protocol/agent.pyi b/livekit-protocol/livekit/protocol/agent.pyi index a94a5ffc..174ccd1c 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") + __slots__ = ("id", "dispatch_id", "type", "room", "participant", "namespace", "metadata", "agent_name", "state", "enable_recording", "deployment", "attributes", "enable_redaction", "created_at") class AttributesEntry(_message.Message): __slots__ = ("key", "value") KEY_FIELD_NUMBER: _ClassVar[int] @@ -72,6 +72,7 @@ class Job(_message.Message): DEPLOYMENT_FIELD_NUMBER: _ClassVar[int] ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] ENABLE_REDACTION_FIELD_NUMBER: _ClassVar[int] + CREATED_AT_FIELD_NUMBER: _ClassVar[int] id: str dispatch_id: str type: JobType @@ -85,10 +86,11 @@ class Job(_message.Message): deployment: str attributes: _containers.ScalarMap[str, str] enable_redaction: bool - 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 = ...) -> None: ... + 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: ... class JobState(_message.Message): - __slots__ = ("status", "error", "started_at", "ended_at", "updated_at", "participant_identity", "worker_id", "agent_id", "reason") + __slots__ = ("status", "error", "started_at", "ended_at", "updated_at", "participant_identity", "worker_id", "agent_id", "reason", "accepted_at", "assigned_at") STATUS_FIELD_NUMBER: _ClassVar[int] ERROR_FIELD_NUMBER: _ClassVar[int] STARTED_AT_FIELD_NUMBER: _ClassVar[int] @@ -98,6 +100,8 @@ class JobState(_message.Message): WORKER_ID_FIELD_NUMBER: _ClassVar[int] AGENT_ID_FIELD_NUMBER: _ClassVar[int] REASON_FIELD_NUMBER: _ClassVar[int] + ACCEPTED_AT_FIELD_NUMBER: _ClassVar[int] + ASSIGNED_AT_FIELD_NUMBER: _ClassVar[int] status: JobStatus error: str started_at: int @@ -107,7 +111,9 @@ class JobState(_message.Message): worker_id: str agent_id: str reason: JobStateReason - 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]] = ...) -> None: ... + 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: ... class WorkerMessage(_message.Message): __slots__ = ("register", "availability", "update_worker", "update_job", "ping", "simulate_job", "migrate_job") @@ -245,14 +251,36 @@ class AvailabilityResponse(_message.Message): def __init__(self, job_id: _Optional[str] = ..., available: bool = ..., supports_resume: bool = ..., terminate: bool = ..., participant_name: _Optional[str] = ..., participant_identity: _Optional[str] = ..., participant_metadata: _Optional[str] = ..., participant_attributes: _Optional[_Mapping[str, str]] = ...) -> None: ... class UpdateJobStatus(_message.Message): - __slots__ = ("job_id", "status", "error") + __slots__ = ("job_id", "status", "error", "join_timing") JOB_ID_FIELD_NUMBER: _ClassVar[int] STATUS_FIELD_NUMBER: _ClassVar[int] ERROR_FIELD_NUMBER: _ClassVar[int] + JOIN_TIMING_FIELD_NUMBER: _ClassVar[int] job_id: str status: JobStatus error: str - def __init__(self, job_id: _Optional[str] = ..., status: _Optional[_Union[JobStatus, str]] = ..., error: _Optional[str] = ...) -> None: ... + join_timing: JobJoinTiming + def __init__(self, job_id: _Optional[str] = ..., status: _Optional[_Union[JobStatus, str]] = ..., error: _Optional[str] = ..., join_timing: _Optional[_Union[JobJoinTiming, _Mapping]] = ...) -> None: ... + +class JobJoinTiming(_message.Message): + __slots__ = ("offer_received_us", "accepted_us", "assignment_received_us", "launched_us", "launch_warm", "entrypoint_started_us", "connect_called_us", "connected_us") + OFFER_RECEIVED_US_FIELD_NUMBER: _ClassVar[int] + ACCEPTED_US_FIELD_NUMBER: _ClassVar[int] + ASSIGNMENT_RECEIVED_US_FIELD_NUMBER: _ClassVar[int] + LAUNCHED_US_FIELD_NUMBER: _ClassVar[int] + LAUNCH_WARM_FIELD_NUMBER: _ClassVar[int] + ENTRYPOINT_STARTED_US_FIELD_NUMBER: _ClassVar[int] + CONNECT_CALLED_US_FIELD_NUMBER: _ClassVar[int] + CONNECTED_US_FIELD_NUMBER: _ClassVar[int] + offer_received_us: int + accepted_us: int + assignment_received_us: int + launched_us: int + launch_warm: bool + entrypoint_started_us: int + connect_called_us: int + connected_us: int + def __init__(self, offer_received_us: _Optional[int] = ..., accepted_us: _Optional[int] = ..., assignment_received_us: _Optional[int] = ..., launched_us: _Optional[int] = ..., launch_warm: bool = ..., entrypoint_started_us: _Optional[int] = ..., connect_called_us: _Optional[int] = ..., connected_us: _Optional[int] = ...) -> None: ... class UpdateWorkerStatus(_message.Message): __slots__ = ("status", "load", "job_count", "draining", "seq") diff --git a/livekit-protocol/livekit/protocol/agent_dispatch.py b/livekit-protocol/livekit/protocol/agent_dispatch.py index 0ba68444..f5d7a619 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\"X\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*5\n\x10JobRestartPolicy\x12\x12\n\x0eJRP_ON_FAILURE\x10\x00\x12\r\n\tJRP_NEVER\x10\x01\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\"\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') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -56,8 +56,10 @@ _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=1471 - _globals['_JOBRESTARTPOLICY']._serialized_end=1524 + _globals['_JOBRESTARTPOLICY']._serialized_start=1520 + _globals['_JOBRESTARTPOLICY']._serialized_end=1573 + _globals['_AGENTDISPATCHTRIGGER']._serialized_start=1575 + _globals['_AGENTDISPATCHTRIGGER']._serialized_end=1672 _globals['_CREATEAGENTDISPATCHREQUEST']._serialized_start=85 _globals['_CREATEAGENTDISPATCHREQUEST']._serialized_end=436 _globals['_CREATEAGENTDISPATCHREQUEST_ATTRIBUTESENTRY']._serialized_start=387 @@ -76,8 +78,8 @@ _globals['_AGENTDISPATCH']._serialized_end=1379 _globals['_AGENTDISPATCH_ATTRIBUTESENTRY']._serialized_start=387 _globals['_AGENTDISPATCH_ATTRIBUTESENTRY']._serialized_end=436 - _globals['_AGENTDISPATCHSTATE']._serialized_start=1381 - _globals['_AGENTDISPATCHSTATE']._serialized_end=1469 - _globals['_AGENTDISPATCHSERVICE']._serialized_start=1527 - _globals['_AGENTDISPATCHSERVICE']._serialized_end=1794 + _globals['_AGENTDISPATCHSTATE']._serialized_start=1382 + _globals['_AGENTDISPATCHSTATE']._serialized_end=1518 + _globals['_AGENTDISPATCHSERVICE']._serialized_start=1675 + _globals['_AGENTDISPATCHSERVICE']._serialized_end=1942 # @@protoc_insertion_point(module_scope) diff --git a/livekit-protocol/livekit/protocol/agent_dispatch.pyi b/livekit-protocol/livekit/protocol/agent_dispatch.pyi index 214cdefe..70fc8061 100644 --- a/livekit-protocol/livekit/protocol/agent_dispatch.pyi +++ b/livekit-protocol/livekit/protocol/agent_dispatch.pyi @@ -12,8 +12,19 @@ class JobRestartPolicy(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = () JRP_ON_FAILURE: _ClassVar[JobRestartPolicy] JRP_NEVER: _ClassVar[JobRestartPolicy] + +class AgentDispatchTrigger(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + ADT_UNSPECIFIED: _ClassVar[AgentDispatchTrigger] + ADT_JOIN: _ClassVar[AgentDispatchTrigger] + ADT_ROOM_API: _ClassVar[AgentDispatchTrigger] + ADT_DISPATCH_API: _ClassVar[AgentDispatchTrigger] JRP_ON_FAILURE: JobRestartPolicy JRP_NEVER: JobRestartPolicy +ADT_UNSPECIFIED: AgentDispatchTrigger +ADT_JOIN: AgentDispatchTrigger +ADT_ROOM_API: AgentDispatchTrigger +ADT_DISPATCH_API: AgentDispatchTrigger class CreateAgentDispatchRequest(_message.Message): __slots__ = ("agent_name", "room", "metadata", "restart_policy", "deployment", "attributes") @@ -109,11 +120,13 @@ class AgentDispatch(_message.Message): 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: ... class AgentDispatchState(_message.Message): - __slots__ = ("jobs", "created_at", "deleted_at") + __slots__ = ("jobs", "created_at", "deleted_at", "trigger") JOBS_FIELD_NUMBER: _ClassVar[int] CREATED_AT_FIELD_NUMBER: _ClassVar[int] DELETED_AT_FIELD_NUMBER: _ClassVar[int] + TRIGGER_FIELD_NUMBER: _ClassVar[int] jobs: _containers.RepeatedCompositeFieldContainer[_agent.Job] created_at: int deleted_at: int - def __init__(self, jobs: _Optional[_Iterable[_Union[_agent.Job, _Mapping]]] = ..., created_at: _Optional[int] = ..., deleted_at: _Optional[int] = ...) -> None: ... + trigger: AgentDispatchTrigger + def __init__(self, jobs: _Optional[_Iterable[_Union[_agent.Job, _Mapping]]] = ..., created_at: _Optional[int] = ..., deleted_at: _Optional[int] = ..., trigger: _Optional[_Union[AgentDispatchTrigger, str]] = ...) -> None: ... diff --git a/livekit-protocol/protocol b/livekit-protocol/protocol index eecdef36..32f24249 160000 --- a/livekit-protocol/protocol +++ b/livekit-protocol/protocol @@ -1 +1 @@ -Subproject commit eecdef3666d352261a9bb63806e3f45b1c41ec75 +Subproject commit 32f242495a62e4d991c6bc6ea787eb6f2ba6d69b