From 9ced57bb84ef2ba9039e10f1f6687d0203c9b3d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Monnom?= Date: Wed, 8 Oct 2025 11:29:13 -0700 Subject: [PATCH 1/6] wip --- magefile.go | 22 +++++ protobufs/agent/livekit_agent_session.proto | 89 +++++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 protobufs/agent/livekit_agent_session.proto diff --git a/magefile.go b/magefile.go index f2a1f5238..54d32beb7 100644 --- a/magefile.go +++ b/magefile.go @@ -51,6 +51,11 @@ func Proto() error { "livekit_cloud_agent.proto", "livekit_phone_number.proto", } + + agentProtoFiles := []string{ + "agent/livekit_agent_session.proto", + } + protoFiles := []string{ "livekit_agent.proto", "livekit_analytics.proto", @@ -148,6 +153,23 @@ func Proto() error { if err := cmd.Run(); err != nil { return err } + + fmt.Println("generating protobuf (livekit/agent)") + { + args := []string{ + "--go_out", target, + "--go_opt=paths=source_relative", + "--plugin=go=" + protocGoPath, + "-I=./protobufs", + } + args = append(args, agentProtoFiles...) + cmd := exec.Command(protoc, args...) + connectStd(cmd) + if err := cmd.Run(); err != nil { + return err + } + } + fmt.Println("generating grpc protobuf") args = append([]string{ "--go_out", ".", diff --git a/protobufs/agent/livekit_agent_session.proto b/protobufs/agent/livekit_agent_session.proto new file mode 100644 index 000000000..b7fcb0ba4 --- /dev/null +++ b/protobufs/agent/livekit_agent_session.proto @@ -0,0 +1,89 @@ +syntax = "proto3"; + +package livekit.agent; + +option go_package = "github.com/livekit/protocol/livekit/agent"; + +import "google/protobuf/timestamp.proto"; + +enum ChatRole { + DEVELOPER = 0; + SYSTEM = 1; + USER = 2; + ASSISTANT = 3; +} + +message MetricsReport { + google.protobuf.Timestamp started_speaking_at = 1; + google.protobuf.Timestamp stopped_speaking_at = 2; + + optional double transcription_delay = 3; + optional double end_of_turn_delay = 4; + optional double on_user_turn_completed_delay = 5; + optional double llm_node_ttft = 6; + optional double tts_node_ttfb = 7; + optional double e2e_latency = 8; +} + +message ChatMessage { + message ChatContent { + oneof payload { + string text = 1; + } + } + + string id = 1; + ChatRole role = 2; + repeated ChatContent content = 3; + bool interrupted = 4; + optional double transcript_confidence = 5; + map extra = 6; + MetricsReport metrics = 7; + google.protobuf.Timestamp created_at = 8; +} + +message FunctionCall { + string id = 1; + string call_id = 2; + string arguments = 3; + string name = 4; + google.protobuf.Timestamp created_at = 5; +} + +message FunctionCallOutput { + string id = 1; + string name = 2; + string call_id = 3; + string output = 4; + bool is_error = 5; + google.protobuf.Timestamp created_at = 6; +} + +message AgentHandoff { + string id = 1; + optional string old_agent_id = 2; + string new_agent_id = 3; + google.protobuf.Timestamp created_at = 4; +} + +message ChatContext { + message ChatItem { + oneof item { + ChatMessage message = 1; + FunctionCall function_call = 2; + FunctionCallOutput function_call_output = 3; + AgentHandoff agent_handoff = 4; + } + } + + repeated ChatItem items = 1; +} + + +message AgentSessionReport { + string job_id = 1; + string room_sid = 2; + string room = 3; + ChatContext chat_history = 4; + google.protobuf.Timestamp created_at = 5; +} From 6d3941b78ea8d21ccb1579fcab20629971ab774c Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 8 Oct 2025 18:30:33 +0000 Subject: [PATCH 2/6] generated protobuf --- livekit/agent/livekit_agent_session.pb.go | 978 ++++++++++++++++++++++ 1 file changed, 978 insertions(+) create mode 100644 livekit/agent/livekit_agent_session.pb.go diff --git a/livekit/agent/livekit_agent_session.pb.go b/livekit/agent/livekit_agent_session.pb.go new file mode 100644 index 000000000..a8f610c3e --- /dev/null +++ b/livekit/agent/livekit_agent_session.pb.go @@ -0,0 +1,978 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.10 +// protoc v4.23.4 +// source: agent/livekit_agent_session.proto + +package agent + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type ChatRole int32 + +const ( + ChatRole_DEVELOPER ChatRole = 0 + ChatRole_SYSTEM ChatRole = 1 + ChatRole_USER ChatRole = 2 + ChatRole_ASSISTANT ChatRole = 3 +) + +// Enum value maps for ChatRole. +var ( + ChatRole_name = map[int32]string{ + 0: "DEVELOPER", + 1: "SYSTEM", + 2: "USER", + 3: "ASSISTANT", + } + ChatRole_value = map[string]int32{ + "DEVELOPER": 0, + "SYSTEM": 1, + "USER": 2, + "ASSISTANT": 3, + } +) + +func (x ChatRole) Enum() *ChatRole { + p := new(ChatRole) + *p = x + return p +} + +func (x ChatRole) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ChatRole) Descriptor() protoreflect.EnumDescriptor { + return file_agent_livekit_agent_session_proto_enumTypes[0].Descriptor() +} + +func (ChatRole) Type() protoreflect.EnumType { + return &file_agent_livekit_agent_session_proto_enumTypes[0] +} + +func (x ChatRole) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ChatRole.Descriptor instead. +func (ChatRole) EnumDescriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{0} +} + +type MetricsReport struct { + state protoimpl.MessageState `protogen:"open.v1"` + StartedSpeakingAt *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=started_speaking_at,json=startedSpeakingAt,proto3" json:"started_speaking_at,omitempty"` + StoppedSpeakingAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=stopped_speaking_at,json=stoppedSpeakingAt,proto3" json:"stopped_speaking_at,omitempty"` + TranscriptionDelay *float64 `protobuf:"fixed64,3,opt,name=transcription_delay,json=transcriptionDelay,proto3,oneof" json:"transcription_delay,omitempty"` + EndOfTurnDelay *float64 `protobuf:"fixed64,4,opt,name=end_of_turn_delay,json=endOfTurnDelay,proto3,oneof" json:"end_of_turn_delay,omitempty"` + OnUserTurnCompletedDelay *float64 `protobuf:"fixed64,5,opt,name=on_user_turn_completed_delay,json=onUserTurnCompletedDelay,proto3,oneof" json:"on_user_turn_completed_delay,omitempty"` + LlmNodeTtft *float64 `protobuf:"fixed64,6,opt,name=llm_node_ttft,json=llmNodeTtft,proto3,oneof" json:"llm_node_ttft,omitempty"` + TtsNodeTtfb *float64 `protobuf:"fixed64,7,opt,name=tts_node_ttfb,json=ttsNodeTtfb,proto3,oneof" json:"tts_node_ttfb,omitempty"` + E2ELatency *float64 `protobuf:"fixed64,8,opt,name=e2e_latency,json=e2eLatency,proto3,oneof" json:"e2e_latency,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MetricsReport) Reset() { + *x = MetricsReport{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MetricsReport) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MetricsReport) ProtoMessage() {} + +func (x *MetricsReport) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MetricsReport.ProtoReflect.Descriptor instead. +func (*MetricsReport) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{0} +} + +func (x *MetricsReport) GetStartedSpeakingAt() *timestamppb.Timestamp { + if x != nil { + return x.StartedSpeakingAt + } + return nil +} + +func (x *MetricsReport) GetStoppedSpeakingAt() *timestamppb.Timestamp { + if x != nil { + return x.StoppedSpeakingAt + } + return nil +} + +func (x *MetricsReport) GetTranscriptionDelay() float64 { + if x != nil && x.TranscriptionDelay != nil { + return *x.TranscriptionDelay + } + return 0 +} + +func (x *MetricsReport) GetEndOfTurnDelay() float64 { + if x != nil && x.EndOfTurnDelay != nil { + return *x.EndOfTurnDelay + } + return 0 +} + +func (x *MetricsReport) GetOnUserTurnCompletedDelay() float64 { + if x != nil && x.OnUserTurnCompletedDelay != nil { + return *x.OnUserTurnCompletedDelay + } + return 0 +} + +func (x *MetricsReport) GetLlmNodeTtft() float64 { + if x != nil && x.LlmNodeTtft != nil { + return *x.LlmNodeTtft + } + return 0 +} + +func (x *MetricsReport) GetTtsNodeTtfb() float64 { + if x != nil && x.TtsNodeTtfb != nil { + return *x.TtsNodeTtfb + } + return 0 +} + +func (x *MetricsReport) GetE2ELatency() float64 { + if x != nil && x.E2ELatency != nil { + return *x.E2ELatency + } + return 0 +} + +type ChatMessage struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Role ChatRole `protobuf:"varint,2,opt,name=role,proto3,enum=livekit.agent.ChatRole" json:"role,omitempty"` + Content []*ChatMessage_ChatContent `protobuf:"bytes,3,rep,name=content,proto3" json:"content,omitempty"` + Interrupted bool `protobuf:"varint,4,opt,name=interrupted,proto3" json:"interrupted,omitempty"` + TranscriptConfidence *float64 `protobuf:"fixed64,5,opt,name=transcript_confidence,json=transcriptConfidence,proto3,oneof" json:"transcript_confidence,omitempty"` + Extra map[string]string `protobuf:"bytes,6,rep,name=extra,proto3" json:"extra,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Metrics *MetricsReport `protobuf:"bytes,7,opt,name=metrics,proto3" json:"metrics,omitempty"` + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ChatMessage) Reset() { + *x = ChatMessage{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ChatMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChatMessage) ProtoMessage() {} + +func (x *ChatMessage) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChatMessage.ProtoReflect.Descriptor instead. +func (*ChatMessage) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{1} +} + +func (x *ChatMessage) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *ChatMessage) GetRole() ChatRole { + if x != nil { + return x.Role + } + return ChatRole_DEVELOPER +} + +func (x *ChatMessage) GetContent() []*ChatMessage_ChatContent { + if x != nil { + return x.Content + } + return nil +} + +func (x *ChatMessage) GetInterrupted() bool { + if x != nil { + return x.Interrupted + } + return false +} + +func (x *ChatMessage) GetTranscriptConfidence() float64 { + if x != nil && x.TranscriptConfidence != nil { + return *x.TranscriptConfidence + } + return 0 +} + +func (x *ChatMessage) GetExtra() map[string]string { + if x != nil { + return x.Extra + } + return nil +} + +func (x *ChatMessage) GetMetrics() *MetricsReport { + if x != nil { + return x.Metrics + } + return nil +} + +func (x *ChatMessage) GetCreatedAt() *timestamppb.Timestamp { + if x != nil { + return x.CreatedAt + } + return nil +} + +type FunctionCall struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + CallId string `protobuf:"bytes,2,opt,name=call_id,json=callId,proto3" json:"call_id,omitempty"` + Arguments string `protobuf:"bytes,3,opt,name=arguments,proto3" json:"arguments,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FunctionCall) Reset() { + *x = FunctionCall{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FunctionCall) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FunctionCall) ProtoMessage() {} + +func (x *FunctionCall) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FunctionCall.ProtoReflect.Descriptor instead. +func (*FunctionCall) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{2} +} + +func (x *FunctionCall) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *FunctionCall) GetCallId() string { + if x != nil { + return x.CallId + } + return "" +} + +func (x *FunctionCall) GetArguments() string { + if x != nil { + return x.Arguments + } + return "" +} + +func (x *FunctionCall) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *FunctionCall) GetCreatedAt() *timestamppb.Timestamp { + if x != nil { + return x.CreatedAt + } + return nil +} + +type FunctionCallOutput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + CallId string `protobuf:"bytes,3,opt,name=call_id,json=callId,proto3" json:"call_id,omitempty"` + Output string `protobuf:"bytes,4,opt,name=output,proto3" json:"output,omitempty"` + IsError bool `protobuf:"varint,5,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"` + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FunctionCallOutput) Reset() { + *x = FunctionCallOutput{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FunctionCallOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FunctionCallOutput) ProtoMessage() {} + +func (x *FunctionCallOutput) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FunctionCallOutput.ProtoReflect.Descriptor instead. +func (*FunctionCallOutput) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{3} +} + +func (x *FunctionCallOutput) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *FunctionCallOutput) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *FunctionCallOutput) GetCallId() string { + if x != nil { + return x.CallId + } + return "" +} + +func (x *FunctionCallOutput) GetOutput() string { + if x != nil { + return x.Output + } + return "" +} + +func (x *FunctionCallOutput) GetIsError() bool { + if x != nil { + return x.IsError + } + return false +} + +func (x *FunctionCallOutput) GetCreatedAt() *timestamppb.Timestamp { + if x != nil { + return x.CreatedAt + } + return nil +} + +type AgentHandoff struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + OldAgentId *string `protobuf:"bytes,2,opt,name=old_agent_id,json=oldAgentId,proto3,oneof" json:"old_agent_id,omitempty"` + NewAgentId string `protobuf:"bytes,3,opt,name=new_agent_id,json=newAgentId,proto3" json:"new_agent_id,omitempty"` + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AgentHandoff) Reset() { + *x = AgentHandoff{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AgentHandoff) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AgentHandoff) ProtoMessage() {} + +func (x *AgentHandoff) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AgentHandoff.ProtoReflect.Descriptor instead. +func (*AgentHandoff) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{4} +} + +func (x *AgentHandoff) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *AgentHandoff) GetOldAgentId() string { + if x != nil && x.OldAgentId != nil { + return *x.OldAgentId + } + return "" +} + +func (x *AgentHandoff) GetNewAgentId() string { + if x != nil { + return x.NewAgentId + } + return "" +} + +func (x *AgentHandoff) GetCreatedAt() *timestamppb.Timestamp { + if x != nil { + return x.CreatedAt + } + return nil +} + +type ChatContext struct { + state protoimpl.MessageState `protogen:"open.v1"` + Items []*ChatContext_ChatItem `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ChatContext) Reset() { + *x = ChatContext{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ChatContext) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChatContext) ProtoMessage() {} + +func (x *ChatContext) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[5] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChatContext.ProtoReflect.Descriptor instead. +func (*ChatContext) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{5} +} + +func (x *ChatContext) GetItems() []*ChatContext_ChatItem { + if x != nil { + return x.Items + } + return nil +} + +type AgentSessionReport struct { + state protoimpl.MessageState `protogen:"open.v1"` + JobId string `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` + RoomSid string `protobuf:"bytes,2,opt,name=room_sid,json=roomSid,proto3" json:"room_sid,omitempty"` + Room string `protobuf:"bytes,3,opt,name=room,proto3" json:"room,omitempty"` + ChatHistory *ChatContext `protobuf:"bytes,4,opt,name=chat_history,json=chatHistory,proto3" json:"chat_history,omitempty"` + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AgentSessionReport) Reset() { + *x = AgentSessionReport{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AgentSessionReport) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AgentSessionReport) ProtoMessage() {} + +func (x *AgentSessionReport) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[6] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AgentSessionReport.ProtoReflect.Descriptor instead. +func (*AgentSessionReport) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{6} +} + +func (x *AgentSessionReport) GetJobId() string { + if x != nil { + return x.JobId + } + return "" +} + +func (x *AgentSessionReport) GetRoomSid() string { + if x != nil { + return x.RoomSid + } + return "" +} + +func (x *AgentSessionReport) GetRoom() string { + if x != nil { + return x.Room + } + return "" +} + +func (x *AgentSessionReport) GetChatHistory() *ChatContext { + if x != nil { + return x.ChatHistory + } + return nil +} + +func (x *AgentSessionReport) GetCreatedAt() *timestamppb.Timestamp { + if x != nil { + return x.CreatedAt + } + return nil +} + +type ChatMessage_ChatContent struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Payload: + // + // *ChatMessage_ChatContent_Text + Payload isChatMessage_ChatContent_Payload `protobuf_oneof:"payload"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ChatMessage_ChatContent) Reset() { + *x = ChatMessage_ChatContent{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ChatMessage_ChatContent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChatMessage_ChatContent) ProtoMessage() {} + +func (x *ChatMessage_ChatContent) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[7] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChatMessage_ChatContent.ProtoReflect.Descriptor instead. +func (*ChatMessage_ChatContent) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{1, 0} +} + +func (x *ChatMessage_ChatContent) GetPayload() isChatMessage_ChatContent_Payload { + if x != nil { + return x.Payload + } + return nil +} + +func (x *ChatMessage_ChatContent) GetText() string { + if x != nil { + if x, ok := x.Payload.(*ChatMessage_ChatContent_Text); ok { + return x.Text + } + } + return "" +} + +type isChatMessage_ChatContent_Payload interface { + isChatMessage_ChatContent_Payload() +} + +type ChatMessage_ChatContent_Text struct { + Text string `protobuf:"bytes,1,opt,name=text,proto3,oneof"` +} + +func (*ChatMessage_ChatContent_Text) isChatMessage_ChatContent_Payload() {} + +type ChatContext_ChatItem struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Item: + // + // *ChatContext_ChatItem_Message + // *ChatContext_ChatItem_FunctionCall + // *ChatContext_ChatItem_FunctionCallOutput + // *ChatContext_ChatItem_AgentHandoff + Item isChatContext_ChatItem_Item `protobuf_oneof:"item"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ChatContext_ChatItem) Reset() { + *x = ChatContext_ChatItem{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ChatContext_ChatItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChatContext_ChatItem) ProtoMessage() {} + +func (x *ChatContext_ChatItem) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[9] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChatContext_ChatItem.ProtoReflect.Descriptor instead. +func (*ChatContext_ChatItem) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{5, 0} +} + +func (x *ChatContext_ChatItem) GetItem() isChatContext_ChatItem_Item { + if x != nil { + return x.Item + } + return nil +} + +func (x *ChatContext_ChatItem) GetMessage() *ChatMessage { + if x != nil { + if x, ok := x.Item.(*ChatContext_ChatItem_Message); ok { + return x.Message + } + } + return nil +} + +func (x *ChatContext_ChatItem) GetFunctionCall() *FunctionCall { + if x != nil { + if x, ok := x.Item.(*ChatContext_ChatItem_FunctionCall); ok { + return x.FunctionCall + } + } + return nil +} + +func (x *ChatContext_ChatItem) GetFunctionCallOutput() *FunctionCallOutput { + if x != nil { + if x, ok := x.Item.(*ChatContext_ChatItem_FunctionCallOutput); ok { + return x.FunctionCallOutput + } + } + return nil +} + +func (x *ChatContext_ChatItem) GetAgentHandoff() *AgentHandoff { + if x != nil { + if x, ok := x.Item.(*ChatContext_ChatItem_AgentHandoff); ok { + return x.AgentHandoff + } + } + return nil +} + +type isChatContext_ChatItem_Item interface { + isChatContext_ChatItem_Item() +} + +type ChatContext_ChatItem_Message struct { + Message *ChatMessage `protobuf:"bytes,1,opt,name=message,proto3,oneof"` +} + +type ChatContext_ChatItem_FunctionCall struct { + FunctionCall *FunctionCall `protobuf:"bytes,2,opt,name=function_call,json=functionCall,proto3,oneof"` +} + +type ChatContext_ChatItem_FunctionCallOutput struct { + FunctionCallOutput *FunctionCallOutput `protobuf:"bytes,3,opt,name=function_call_output,json=functionCallOutput,proto3,oneof"` +} + +type ChatContext_ChatItem_AgentHandoff struct { + AgentHandoff *AgentHandoff `protobuf:"bytes,4,opt,name=agent_handoff,json=agentHandoff,proto3,oneof"` +} + +func (*ChatContext_ChatItem_Message) isChatContext_ChatItem_Item() {} + +func (*ChatContext_ChatItem_FunctionCall) isChatContext_ChatItem_Item() {} + +func (*ChatContext_ChatItem_FunctionCallOutput) isChatContext_ChatItem_Item() {} + +func (*ChatContext_ChatItem_AgentHandoff) isChatContext_ChatItem_Item() {} + +var File_agent_livekit_agent_session_proto protoreflect.FileDescriptor + +const file_agent_livekit_agent_session_proto_rawDesc = "" + + "\n" + + "!agent/livekit_agent_session.proto\x12\rlivekit.agent\x1a\x1fgoogle/protobuf/timestamp.proto\"\xcd\x04\n" + + "\rMetricsReport\x12J\n" + + "\x13started_speaking_at\x18\x01 \x01(\v2\x1a.google.protobuf.TimestampR\x11startedSpeakingAt\x12J\n" + + "\x13stopped_speaking_at\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\x11stoppedSpeakingAt\x124\n" + + "\x13transcription_delay\x18\x03 \x01(\x01H\x00R\x12transcriptionDelay\x88\x01\x01\x12.\n" + + "\x11end_of_turn_delay\x18\x04 \x01(\x01H\x01R\x0eendOfTurnDelay\x88\x01\x01\x12C\n" + + "\x1con_user_turn_completed_delay\x18\x05 \x01(\x01H\x02R\x18onUserTurnCompletedDelay\x88\x01\x01\x12'\n" + + "\rllm_node_ttft\x18\x06 \x01(\x01H\x03R\vllmNodeTtft\x88\x01\x01\x12'\n" + + "\rtts_node_ttfb\x18\a \x01(\x01H\x04R\vttsNodeTtfb\x88\x01\x01\x12$\n" + + "\ve2e_latency\x18\b \x01(\x01H\x05R\n" + + "e2eLatency\x88\x01\x01B\x16\n" + + "\x14_transcription_delayB\x14\n" + + "\x12_end_of_turn_delayB\x1f\n" + + "\x1d_on_user_turn_completed_delayB\x10\n" + + "\x0e_llm_node_ttftB\x10\n" + + "\x0e_tts_node_ttfbB\x0e\n" + + "\f_e2e_latency\"\x9c\x04\n" + + "\vChatMessage\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12+\n" + + "\x04role\x18\x02 \x01(\x0e2\x17.livekit.agent.ChatRoleR\x04role\x12@\n" + + "\acontent\x18\x03 \x03(\v2&.livekit.agent.ChatMessage.ChatContentR\acontent\x12 \n" + + "\vinterrupted\x18\x04 \x01(\bR\vinterrupted\x128\n" + + "\x15transcript_confidence\x18\x05 \x01(\x01H\x00R\x14transcriptConfidence\x88\x01\x01\x12;\n" + + "\x05extra\x18\x06 \x03(\v2%.livekit.agent.ChatMessage.ExtraEntryR\x05extra\x126\n" + + "\ametrics\x18\a \x01(\v2\x1c.livekit.agent.MetricsReportR\ametrics\x129\n" + + "\n" + + "created_at\x18\b \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x1a.\n" + + "\vChatContent\x12\x14\n" + + "\x04text\x18\x01 \x01(\tH\x00R\x04textB\t\n" + + "\apayload\x1a8\n" + + "\n" + + "ExtraEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B\x18\n" + + "\x16_transcript_confidence\"\xa4\x01\n" + + "\fFunctionCall\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x17\n" + + "\acall_id\x18\x02 \x01(\tR\x06callId\x12\x1c\n" + + "\targuments\x18\x03 \x01(\tR\targuments\x12\x12\n" + + "\x04name\x18\x04 \x01(\tR\x04name\x129\n" + + "\n" + + "created_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\"\xbf\x01\n" + + "\x12FunctionCallOutput\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12\x17\n" + + "\acall_id\x18\x03 \x01(\tR\x06callId\x12\x16\n" + + "\x06output\x18\x04 \x01(\tR\x06output\x12\x19\n" + + "\bis_error\x18\x05 \x01(\bR\aisError\x129\n" + + "\n" + + "created_at\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\"\xb3\x01\n" + + "\fAgentHandoff\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12%\n" + + "\fold_agent_id\x18\x02 \x01(\tH\x00R\n" + + "oldAgentId\x88\x01\x01\x12 \n" + + "\fnew_agent_id\x18\x03 \x01(\tR\n" + + "newAgentId\x129\n" + + "\n" + + "created_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAtB\x0f\n" + + "\r_old_agent_id\"\xf4\x02\n" + + "\vChatContext\x129\n" + + "\x05items\x18\x01 \x03(\v2#.livekit.agent.ChatContext.ChatItemR\x05items\x1a\xa9\x02\n" + + "\bChatItem\x126\n" + + "\amessage\x18\x01 \x01(\v2\x1a.livekit.agent.ChatMessageH\x00R\amessage\x12B\n" + + "\rfunction_call\x18\x02 \x01(\v2\x1b.livekit.agent.FunctionCallH\x00R\ffunctionCall\x12U\n" + + "\x14function_call_output\x18\x03 \x01(\v2!.livekit.agent.FunctionCallOutputH\x00R\x12functionCallOutput\x12B\n" + + "\ragent_handoff\x18\x04 \x01(\v2\x1b.livekit.agent.AgentHandoffH\x00R\fagentHandoffB\x06\n" + + "\x04item\"\xd4\x01\n" + + "\x12AgentSessionReport\x12\x15\n" + + "\x06job_id\x18\x01 \x01(\tR\x05jobId\x12\x19\n" + + "\broom_sid\x18\x02 \x01(\tR\aroomSid\x12\x12\n" + + "\x04room\x18\x03 \x01(\tR\x04room\x12=\n" + + "\fchat_history\x18\x04 \x01(\v2\x1a.livekit.agent.ChatContextR\vchatHistory\x129\n" + + "\n" + + "created_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt*>\n" + + "\bChatRole\x12\r\n" + + "\tDEVELOPER\x10\x00\x12\n" + + "\n" + + "\x06SYSTEM\x10\x01\x12\b\n" + + "\x04USER\x10\x02\x12\r\n" + + "\tASSISTANT\x10\x03B+Z)github.com/livekit/protocol/livekit/agentb\x06proto3" + +var ( + file_agent_livekit_agent_session_proto_rawDescOnce sync.Once + file_agent_livekit_agent_session_proto_rawDescData []byte +) + +func file_agent_livekit_agent_session_proto_rawDescGZIP() []byte { + file_agent_livekit_agent_session_proto_rawDescOnce.Do(func() { + file_agent_livekit_agent_session_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_agent_livekit_agent_session_proto_rawDesc), len(file_agent_livekit_agent_session_proto_rawDesc))) + }) + return file_agent_livekit_agent_session_proto_rawDescData +} + +var file_agent_livekit_agent_session_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_agent_livekit_agent_session_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_agent_livekit_agent_session_proto_goTypes = []any{ + (ChatRole)(0), // 0: livekit.agent.ChatRole + (*MetricsReport)(nil), // 1: livekit.agent.MetricsReport + (*ChatMessage)(nil), // 2: livekit.agent.ChatMessage + (*FunctionCall)(nil), // 3: livekit.agent.FunctionCall + (*FunctionCallOutput)(nil), // 4: livekit.agent.FunctionCallOutput + (*AgentHandoff)(nil), // 5: livekit.agent.AgentHandoff + (*ChatContext)(nil), // 6: livekit.agent.ChatContext + (*AgentSessionReport)(nil), // 7: livekit.agent.AgentSessionReport + (*ChatMessage_ChatContent)(nil), // 8: livekit.agent.ChatMessage.ChatContent + nil, // 9: livekit.agent.ChatMessage.ExtraEntry + (*ChatContext_ChatItem)(nil), // 10: livekit.agent.ChatContext.ChatItem + (*timestamppb.Timestamp)(nil), // 11: google.protobuf.Timestamp +} +var file_agent_livekit_agent_session_proto_depIdxs = []int32{ + 11, // 0: livekit.agent.MetricsReport.started_speaking_at:type_name -> google.protobuf.Timestamp + 11, // 1: livekit.agent.MetricsReport.stopped_speaking_at:type_name -> google.protobuf.Timestamp + 0, // 2: livekit.agent.ChatMessage.role:type_name -> livekit.agent.ChatRole + 8, // 3: livekit.agent.ChatMessage.content:type_name -> livekit.agent.ChatMessage.ChatContent + 9, // 4: livekit.agent.ChatMessage.extra:type_name -> livekit.agent.ChatMessage.ExtraEntry + 1, // 5: livekit.agent.ChatMessage.metrics:type_name -> livekit.agent.MetricsReport + 11, // 6: livekit.agent.ChatMessage.created_at:type_name -> google.protobuf.Timestamp + 11, // 7: livekit.agent.FunctionCall.created_at:type_name -> google.protobuf.Timestamp + 11, // 8: livekit.agent.FunctionCallOutput.created_at:type_name -> google.protobuf.Timestamp + 11, // 9: livekit.agent.AgentHandoff.created_at:type_name -> google.protobuf.Timestamp + 10, // 10: livekit.agent.ChatContext.items:type_name -> livekit.agent.ChatContext.ChatItem + 6, // 11: livekit.agent.AgentSessionReport.chat_history:type_name -> livekit.agent.ChatContext + 11, // 12: livekit.agent.AgentSessionReport.created_at:type_name -> google.protobuf.Timestamp + 2, // 13: livekit.agent.ChatContext.ChatItem.message:type_name -> livekit.agent.ChatMessage + 3, // 14: livekit.agent.ChatContext.ChatItem.function_call:type_name -> livekit.agent.FunctionCall + 4, // 15: livekit.agent.ChatContext.ChatItem.function_call_output:type_name -> livekit.agent.FunctionCallOutput + 5, // 16: livekit.agent.ChatContext.ChatItem.agent_handoff:type_name -> livekit.agent.AgentHandoff + 17, // [17:17] is the sub-list for method output_type + 17, // [17:17] is the sub-list for method input_type + 17, // [17:17] is the sub-list for extension type_name + 17, // [17:17] is the sub-list for extension extendee + 0, // [0:17] is the sub-list for field type_name +} + +func init() { file_agent_livekit_agent_session_proto_init() } +func file_agent_livekit_agent_session_proto_init() { + if File_agent_livekit_agent_session_proto != nil { + return + } + file_agent_livekit_agent_session_proto_msgTypes[0].OneofWrappers = []any{} + file_agent_livekit_agent_session_proto_msgTypes[1].OneofWrappers = []any{} + file_agent_livekit_agent_session_proto_msgTypes[4].OneofWrappers = []any{} + file_agent_livekit_agent_session_proto_msgTypes[7].OneofWrappers = []any{ + (*ChatMessage_ChatContent_Text)(nil), + } + file_agent_livekit_agent_session_proto_msgTypes[9].OneofWrappers = []any{ + (*ChatContext_ChatItem_Message)(nil), + (*ChatContext_ChatItem_FunctionCall)(nil), + (*ChatContext_ChatItem_FunctionCallOutput)(nil), + (*ChatContext_ChatItem_AgentHandoff)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_agent_livekit_agent_session_proto_rawDesc), len(file_agent_livekit_agent_session_proto_rawDesc)), + NumEnums: 1, + NumMessages: 10, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_agent_livekit_agent_session_proto_goTypes, + DependencyIndexes: file_agent_livekit_agent_session_proto_depIdxs, + EnumInfos: file_agent_livekit_agent_session_proto_enumTypes, + MessageInfos: file_agent_livekit_agent_session_proto_msgTypes, + }.Build() + File_agent_livekit_agent_session_proto = out.File + file_agent_livekit_agent_session_proto_goTypes = nil + file_agent_livekit_agent_session_proto_depIdxs = nil +} From a59654269da373203f3c4c1efce7d1db89f3c0f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Monnom?= Date: Wed, 8 Oct 2025 11:31:45 -0700 Subject: [PATCH 3/6] no need for report, will use header --- protobufs/livekit_agent_session.proto | 81 +++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 protobufs/livekit_agent_session.proto diff --git a/protobufs/livekit_agent_session.proto b/protobufs/livekit_agent_session.proto new file mode 100644 index 000000000..630639300 --- /dev/null +++ b/protobufs/livekit_agent_session.proto @@ -0,0 +1,81 @@ +syntax = "proto3"; + +package livekit.agent; + +option go_package = "github.com/livekit/protocol/livekit/agent"; + +import "google/protobuf/timestamp.proto"; + +enum ChatRole { + DEVELOPER = 0; + SYSTEM = 1; + USER = 2; + ASSISTANT = 3; +} + +message MetricsReport { + google.protobuf.Timestamp started_speaking_at = 1; + google.protobuf.Timestamp stopped_speaking_at = 2; + + optional double transcription_delay = 3; + optional double end_of_turn_delay = 4; + optional double on_user_turn_completed_delay = 5; + optional double llm_node_ttft = 6; + optional double tts_node_ttfb = 7; + optional double e2e_latency = 8; +} + +message ChatMessage { + message ChatContent { + oneof payload { + string text = 1; + } + } + + string id = 1; + ChatRole role = 2; + repeated ChatContent content = 3; + bool interrupted = 4; + optional double transcript_confidence = 5; + map extra = 6; + MetricsReport metrics = 7; + google.protobuf.Timestamp created_at = 8; +} + +message FunctionCall { + string id = 1; + string call_id = 2; + string arguments = 3; + string name = 4; + google.protobuf.Timestamp created_at = 5; +} + +message FunctionCallOutput { + string id = 1; + string name = 2; + string call_id = 3; + string output = 4; + bool is_error = 5; + google.protobuf.Timestamp created_at = 6; +} + +message AgentHandoff { + string id = 1; + optional string old_agent_id = 2; + string new_agent_id = 3; + google.protobuf.Timestamp created_at = 4; +} + +message ChatContext { + message ChatItem { + oneof item { + ChatMessage message = 1; + FunctionCall function_call = 2; + FunctionCallOutput function_call_output = 3; + AgentHandoff agent_handoff = 4; + } + } + + repeated ChatItem items = 1; +} + From 68af2acb1a4b314582a2188f0234f020442bea8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Monnom?= Date: Wed, 8 Oct 2025 11:32:42 -0700 Subject: [PATCH 4/6] wip --- protobufs/agent/livekit_agent_session.proto | 8 -- protobufs/livekit_agent_session.proto | 81 --------------------- 2 files changed, 89 deletions(-) delete mode 100644 protobufs/livekit_agent_session.proto diff --git a/protobufs/agent/livekit_agent_session.proto b/protobufs/agent/livekit_agent_session.proto index b7fcb0ba4..630639300 100644 --- a/protobufs/agent/livekit_agent_session.proto +++ b/protobufs/agent/livekit_agent_session.proto @@ -79,11 +79,3 @@ message ChatContext { repeated ChatItem items = 1; } - -message AgentSessionReport { - string job_id = 1; - string room_sid = 2; - string room = 3; - ChatContext chat_history = 4; - google.protobuf.Timestamp created_at = 5; -} diff --git a/protobufs/livekit_agent_session.proto b/protobufs/livekit_agent_session.proto deleted file mode 100644 index 630639300..000000000 --- a/protobufs/livekit_agent_session.proto +++ /dev/null @@ -1,81 +0,0 @@ -syntax = "proto3"; - -package livekit.agent; - -option go_package = "github.com/livekit/protocol/livekit/agent"; - -import "google/protobuf/timestamp.proto"; - -enum ChatRole { - DEVELOPER = 0; - SYSTEM = 1; - USER = 2; - ASSISTANT = 3; -} - -message MetricsReport { - google.protobuf.Timestamp started_speaking_at = 1; - google.protobuf.Timestamp stopped_speaking_at = 2; - - optional double transcription_delay = 3; - optional double end_of_turn_delay = 4; - optional double on_user_turn_completed_delay = 5; - optional double llm_node_ttft = 6; - optional double tts_node_ttfb = 7; - optional double e2e_latency = 8; -} - -message ChatMessage { - message ChatContent { - oneof payload { - string text = 1; - } - } - - string id = 1; - ChatRole role = 2; - repeated ChatContent content = 3; - bool interrupted = 4; - optional double transcript_confidence = 5; - map extra = 6; - MetricsReport metrics = 7; - google.protobuf.Timestamp created_at = 8; -} - -message FunctionCall { - string id = 1; - string call_id = 2; - string arguments = 3; - string name = 4; - google.protobuf.Timestamp created_at = 5; -} - -message FunctionCallOutput { - string id = 1; - string name = 2; - string call_id = 3; - string output = 4; - bool is_error = 5; - google.protobuf.Timestamp created_at = 6; -} - -message AgentHandoff { - string id = 1; - optional string old_agent_id = 2; - string new_agent_id = 3; - google.protobuf.Timestamp created_at = 4; -} - -message ChatContext { - message ChatItem { - oneof item { - ChatMessage message = 1; - FunctionCall function_call = 2; - FunctionCallOutput function_call_output = 3; - AgentHandoff agent_handoff = 4; - } - } - - repeated ChatItem items = 1; -} - From a516d51cb8d4fac563b3d57882227b6cd9fa985d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Monnom?= Date: Tue, 3 Mar 2026 22:36:23 -0800 Subject: [PATCH 5/6] add remote session protocol --- protobufs/agent/livekit_agent_session.proto | 129 +++++++++++++++++++- 1 file changed, 128 insertions(+), 1 deletion(-) diff --git a/protobufs/agent/livekit_agent_session.proto b/protobufs/agent/livekit_agent_session.proto index 630639300..5f0ecf61e 100644 --- a/protobufs/agent/livekit_agent_session.proto +++ b/protobufs/agent/livekit_agent_session.proto @@ -31,7 +31,7 @@ message ChatMessage { string text = 1; } } - + string id = 1; ChatRole role = 2; repeated ChatContent content = 3; @@ -79,3 +79,130 @@ message ChatContext { repeated ChatItem items = 1; } +message SessionAudioFrame { + bytes data = 1; + uint32 sample_rate = 2; + uint32 num_channels = 3; + uint32 samples_per_channel = 4; +} + +enum SessionAgentState { + SESSION_AGENT_STATE_INITIALIZING = 0; + SESSION_AGENT_STATE_IDLE = 1; + SESSION_AGENT_STATE_LISTENING = 2; + SESSION_AGENT_STATE_THINKING = 3; + SESSION_AGENT_STATE_SPEAKING = 4; +} + +enum SessionUserState { + SESSION_USER_STATE_SPEAKING = 0; + SESSION_USER_STATE_LISTENING = 1; + SESSION_USER_STATE_AWAY = 2; +} + +message SessionEvent { + message AgentStateChanged { + SessionAgentState old_state = 1; + SessionAgentState new_state = 2; + } + + message UserStateChanged { + SessionUserState old_state = 1; + SessionUserState new_state = 2; + } + + message ConversationItemAdded { + ChatContext.ChatItem item = 1; + } + + message UserInputTranscribed { + string transcript = 1; + bool is_final = 2; + optional string language = 3; + } + + message FunctionToolsExecuted { + repeated FunctionCall function_calls = 1; + repeated FunctionCallOutput function_call_outputs = 2; + } + + message MetricsCollected { + MetricsReport metrics = 1; + } + + message Error { + string message = 1; + } + + google.protobuf.Timestamp created_at = 1; + oneof event { + AgentStateChanged agent_state_changed = 10; + UserStateChanged user_state_changed = 11; + ConversationItemAdded conversation_item_added = 12; + UserInputTranscribed user_input_transcribed = 13; + FunctionToolsExecuted function_tools_executed = 14; + MetricsCollected metrics_collected = 15; + Error error = 16; + } +} + +message SessionRequest { + message Ping {} + + message GetState {} + message GetStateResponse { + SessionAgentState agent_state = 1; + SessionUserState user_state = 2; + string agent_id = 3; + } + + message GetChatHistory {} + message GetChatHistoryResponse { + repeated ChatContext.ChatItem items = 1; + } + + message SendMessage { + string text = 1; + } + message SendMessageResponse { + repeated ChatContext.ChatItem items = 1; + } + + string request_id = 1; + oneof request { + Ping ping = 2; + GetState get_state = 3; + GetChatHistory get_chat_history = 4; + SendMessage send_message = 5; + } +} + +message SessionResponse { + message Pong {} + + string request_id = 1; + optional string error = 2; + oneof response { + Pong pong = 3; + SessionRequest.GetStateResponse get_state = 4; + SessionRequest.GetChatHistoryResponse get_chat_history = 5; + SessionRequest.SendMessageResponse send_message = 6; + } +} + +message SessionAudioPlaybackFlush {} +message SessionAudioPlaybackClear {} +message SessionAudioPlaybackFinished {} + +message AgentSessionMessage { + oneof message { + SessionAudioFrame audio_input = 1; + SessionAudioFrame audio_output = 2; + SessionEvent event = 3; + SessionRequest request = 4; + SessionResponse response = 5; + SessionAudioPlaybackFlush audio_playback_flush = 6; + SessionAudioPlaybackClear audio_playback_clear = 7; + SessionAudioPlaybackFinished audio_playback_finished = 8; + } +} From 7b616964a877be81a36e3591496b701975f4dcb9 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 4 Mar 2026 06:40:49 +0000 Subject: [PATCH 6/6] generated protobuf --- infra/link.pb.go | 2 +- infra/link_grpc.pb.go | 8 +- livekit/agent/livekit_agent_session.pb.go | 2067 +++++++++++++++++++-- livekit/livekit_agent.pb.go | 2 +- livekit/livekit_agent_dispatch.pb.go | 2 +- livekit/livekit_analytics.pb.go | 2 +- livekit/livekit_cloud_agent.pb.go | 2 +- livekit/livekit_egress.pb.go | 2 +- livekit/livekit_ingress.pb.go | 2 +- livekit/livekit_internal.pb.go | 2 +- livekit/livekit_metrics.pb.go | 2 +- livekit/livekit_models.pb.go | 2 +- livekit/livekit_phone_number.pb.go | 2 +- livekit/livekit_room.pb.go | 2 +- livekit/livekit_rtc.pb.go | 2 +- livekit/livekit_sip.pb.go | 2 +- livekit/livekit_token_source.pb.go | 2 +- livekit/livekit_webhook.pb.go | 2 +- replay/cloud_replay.pb.go | 2 +- rpc/agent.pb.go | 2 +- rpc/agent_dispatch.pb.go | 2 +- rpc/analytics.pb.go | 2 +- rpc/analytics_grpc.pb.go | 10 +- rpc/egress.pb.go | 2 +- rpc/ingress.pb.go | 2 +- rpc/io.pb.go | 2 +- rpc/keepalive.pb.go | 2 +- rpc/participant.pb.go | 2 +- rpc/room.pb.go | 2 +- rpc/roommanager.pb.go | 2 +- rpc/signal.pb.go | 2 +- rpc/sip.pb.go | 2 +- rpc/whip_signal.pb.go | 2 +- 33 files changed, 1908 insertions(+), 237 deletions(-) diff --git a/infra/link.pb.go b/infra/link.pb.go index 2e7555e4a..13859fa1d 100644 --- a/infra/link.pb.go +++ b/infra/link.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: infra/link.proto diff --git a/infra/link_grpc.pb.go b/infra/link_grpc.pb.go index 281cec953..f5e2075a1 100644 --- a/infra/link_grpc.pb.go +++ b/infra/link_grpc.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.5.1 +// - protoc-gen-go-grpc v1.6.1 // - protoc v4.23.4 // source: infra/link.proto @@ -99,10 +99,10 @@ type LinkServer interface { type UnimplementedLinkServer struct{} func (UnimplementedLinkServer) WatchLocalLinks(*WatchLocalLinksRequest, grpc.ServerStreamingServer[WatchLocalLinksResponse]) error { - return status.Errorf(codes.Unimplemented, "method WatchLocalLinks not implemented") + return status.Error(codes.Unimplemented, "method WatchLocalLinks not implemented") } func (UnimplementedLinkServer) SimulateLinkState(context.Context, *SimulateLinkStateRequest) (*SimulateLinkStateResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method SimulateLinkState not implemented") + return nil, status.Error(codes.Unimplemented, "method SimulateLinkState not implemented") } func (UnimplementedLinkServer) mustEmbedUnimplementedLinkServer() {} func (UnimplementedLinkServer) testEmbeddedByValue() {} @@ -115,7 +115,7 @@ type UnsafeLinkServer interface { } func RegisterLinkServer(s grpc.ServiceRegistrar, srv LinkServer) { - // If the following call pancis, it indicates UnimplementedLinkServer was + // If the following call panics, it indicates UnimplementedLinkServer was // embedded by pointer and is nil. This will cause panics if an // unimplemented method is ever invoked, so we test this at initialization // time to prevent it from happening at runtime later due to I/O. diff --git a/livekit/agent/livekit_agent_session.pb.go b/livekit/agent/livekit_agent_session.pb.go index a8f610c3e..55e0b6d9a 100644 --- a/livekit/agent/livekit_agent_session.pb.go +++ b/livekit/agent/livekit_agent_session.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: agent/livekit_agent_session.proto @@ -74,6 +74,110 @@ func (ChatRole) EnumDescriptor() ([]byte, []int) { return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{0} } +type SessionAgentState int32 + +const ( + SessionAgentState_SESSION_AGENT_STATE_INITIALIZING SessionAgentState = 0 + SessionAgentState_SESSION_AGENT_STATE_IDLE SessionAgentState = 1 + SessionAgentState_SESSION_AGENT_STATE_LISTENING SessionAgentState = 2 + SessionAgentState_SESSION_AGENT_STATE_THINKING SessionAgentState = 3 + SessionAgentState_SESSION_AGENT_STATE_SPEAKING SessionAgentState = 4 +) + +// Enum value maps for SessionAgentState. +var ( + SessionAgentState_name = map[int32]string{ + 0: "SESSION_AGENT_STATE_INITIALIZING", + 1: "SESSION_AGENT_STATE_IDLE", + 2: "SESSION_AGENT_STATE_LISTENING", + 3: "SESSION_AGENT_STATE_THINKING", + 4: "SESSION_AGENT_STATE_SPEAKING", + } + SessionAgentState_value = map[string]int32{ + "SESSION_AGENT_STATE_INITIALIZING": 0, + "SESSION_AGENT_STATE_IDLE": 1, + "SESSION_AGENT_STATE_LISTENING": 2, + "SESSION_AGENT_STATE_THINKING": 3, + "SESSION_AGENT_STATE_SPEAKING": 4, + } +) + +func (x SessionAgentState) Enum() *SessionAgentState { + p := new(SessionAgentState) + *p = x + return p +} + +func (x SessionAgentState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SessionAgentState) Descriptor() protoreflect.EnumDescriptor { + return file_agent_livekit_agent_session_proto_enumTypes[1].Descriptor() +} + +func (SessionAgentState) Type() protoreflect.EnumType { + return &file_agent_livekit_agent_session_proto_enumTypes[1] +} + +func (x SessionAgentState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SessionAgentState.Descriptor instead. +func (SessionAgentState) EnumDescriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{1} +} + +type SessionUserState int32 + +const ( + SessionUserState_SESSION_USER_STATE_SPEAKING SessionUserState = 0 + SessionUserState_SESSION_USER_STATE_LISTENING SessionUserState = 1 + SessionUserState_SESSION_USER_STATE_AWAY SessionUserState = 2 +) + +// Enum value maps for SessionUserState. +var ( + SessionUserState_name = map[int32]string{ + 0: "SESSION_USER_STATE_SPEAKING", + 1: "SESSION_USER_STATE_LISTENING", + 2: "SESSION_USER_STATE_AWAY", + } + SessionUserState_value = map[string]int32{ + "SESSION_USER_STATE_SPEAKING": 0, + "SESSION_USER_STATE_LISTENING": 1, + "SESSION_USER_STATE_AWAY": 2, + } +) + +func (x SessionUserState) Enum() *SessionUserState { + p := new(SessionUserState) + *p = x + return p +} + +func (x SessionUserState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SessionUserState) Descriptor() protoreflect.EnumDescriptor { + return file_agent_livekit_agent_session_proto_enumTypes[2].Descriptor() +} + +func (SessionUserState) Type() protoreflect.EnumType { + return &file_agent_livekit_agent_session_proto_enumTypes[2] +} + +func (x SessionUserState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SessionUserState.Descriptor instead. +func (SessionUserState) EnumDescriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{2} +} + type MetricsReport struct { state protoimpl.MessageState `protogen:"open.v1"` StartedSpeakingAt *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=started_speaking_at,json=startedSpeakingAt,proto3" json:"started_speaking_at,omitempty"` @@ -546,31 +650,30 @@ func (x *ChatContext) GetItems() []*ChatContext_ChatItem { return nil } -type AgentSessionReport struct { - state protoimpl.MessageState `protogen:"open.v1"` - JobId string `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` - RoomSid string `protobuf:"bytes,2,opt,name=room_sid,json=roomSid,proto3" json:"room_sid,omitempty"` - Room string `protobuf:"bytes,3,opt,name=room,proto3" json:"room,omitempty"` - ChatHistory *ChatContext `protobuf:"bytes,4,opt,name=chat_history,json=chatHistory,proto3" json:"chat_history,omitempty"` - CreatedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache +type SessionAudioFrame struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + SampleRate uint32 `protobuf:"varint,2,opt,name=sample_rate,json=sampleRate,proto3" json:"sample_rate,omitempty"` + NumChannels uint32 `protobuf:"varint,3,opt,name=num_channels,json=numChannels,proto3" json:"num_channels,omitempty"` + SamplesPerChannel uint32 `protobuf:"varint,4,opt,name=samples_per_channel,json=samplesPerChannel,proto3" json:"samples_per_channel,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } -func (x *AgentSessionReport) Reset() { - *x = AgentSessionReport{} +func (x *SessionAudioFrame) Reset() { + *x = SessionAudioFrame{} mi := &file_agent_livekit_agent_session_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *AgentSessionReport) String() string { +func (x *SessionAudioFrame) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AgentSessionReport) ProtoMessage() {} +func (*SessionAudioFrame) ProtoMessage() {} -func (x *AgentSessionReport) ProtoReflect() protoreflect.Message { +func (x *SessionAudioFrame) ProtoReflect() protoreflect.Message { mi := &file_agent_livekit_agent_session_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -582,70 +685,70 @@ func (x *AgentSessionReport) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AgentSessionReport.ProtoReflect.Descriptor instead. -func (*AgentSessionReport) Descriptor() ([]byte, []int) { +// Deprecated: Use SessionAudioFrame.ProtoReflect.Descriptor instead. +func (*SessionAudioFrame) Descriptor() ([]byte, []int) { return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{6} } -func (x *AgentSessionReport) GetJobId() string { +func (x *SessionAudioFrame) GetData() []byte { if x != nil { - return x.JobId + return x.Data } - return "" -} - -func (x *AgentSessionReport) GetRoomSid() string { - if x != nil { - return x.RoomSid - } - return "" + return nil } -func (x *AgentSessionReport) GetRoom() string { +func (x *SessionAudioFrame) GetSampleRate() uint32 { if x != nil { - return x.Room + return x.SampleRate } - return "" + return 0 } -func (x *AgentSessionReport) GetChatHistory() *ChatContext { +func (x *SessionAudioFrame) GetNumChannels() uint32 { if x != nil { - return x.ChatHistory + return x.NumChannels } - return nil + return 0 } -func (x *AgentSessionReport) GetCreatedAt() *timestamppb.Timestamp { +func (x *SessionAudioFrame) GetSamplesPerChannel() uint32 { if x != nil { - return x.CreatedAt + return x.SamplesPerChannel } - return nil + return 0 } -type ChatMessage_ChatContent struct { - state protoimpl.MessageState `protogen:"open.v1"` - // Types that are valid to be assigned to Payload: +type SessionEvent struct { + state protoimpl.MessageState `protogen:"open.v1"` + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + // Types that are valid to be assigned to Event: // - // *ChatMessage_ChatContent_Text - Payload isChatMessage_ChatContent_Payload `protobuf_oneof:"payload"` + // *SessionEvent_AgentStateChanged_ + // *SessionEvent_UserStateChanged_ + // *SessionEvent_ConversationItemAdded_ + // *SessionEvent_UserInputTranscribed_ + // *SessionEvent_FunctionToolsExecuted_ + // *SessionEvent_MetricsCollected_ + // *SessionEvent_Error_ + Event isSessionEvent_Event `protobuf_oneof:"event"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } -func (x *ChatMessage_ChatContent) Reset() { - *x = ChatMessage_ChatContent{} +func (x *SessionEvent) Reset() { + *x = SessionEvent{} mi := &file_agent_livekit_agent_session_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ChatMessage_ChatContent) String() string { +func (x *SessionEvent) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ChatMessage_ChatContent) ProtoMessage() {} +func (*SessionEvent) ProtoMessage() {} -func (x *ChatMessage_ChatContent) ProtoReflect() protoreflect.Message { +func (x *SessionEvent) ProtoReflect() protoreflect.Message { mi := &file_agent_livekit_agent_session_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -657,65 +760,163 @@ func (x *ChatMessage_ChatContent) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ChatMessage_ChatContent.ProtoReflect.Descriptor instead. -func (*ChatMessage_ChatContent) Descriptor() ([]byte, []int) { - return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{1, 0} +// Deprecated: Use SessionEvent.ProtoReflect.Descriptor instead. +func (*SessionEvent) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{7} } -func (x *ChatMessage_ChatContent) GetPayload() isChatMessage_ChatContent_Payload { +func (x *SessionEvent) GetCreatedAt() *timestamppb.Timestamp { if x != nil { - return x.Payload + return x.CreatedAt } return nil } -func (x *ChatMessage_ChatContent) GetText() string { +func (x *SessionEvent) GetEvent() isSessionEvent_Event { if x != nil { - if x, ok := x.Payload.(*ChatMessage_ChatContent_Text); ok { - return x.Text + return x.Event + } + return nil +} + +func (x *SessionEvent) GetAgentStateChanged() *SessionEvent_AgentStateChanged { + if x != nil { + if x, ok := x.Event.(*SessionEvent_AgentStateChanged_); ok { + return x.AgentStateChanged } } - return "" + return nil } -type isChatMessage_ChatContent_Payload interface { - isChatMessage_ChatContent_Payload() +func (x *SessionEvent) GetUserStateChanged() *SessionEvent_UserStateChanged { + if x != nil { + if x, ok := x.Event.(*SessionEvent_UserStateChanged_); ok { + return x.UserStateChanged + } + } + return nil } -type ChatMessage_ChatContent_Text struct { - Text string `protobuf:"bytes,1,opt,name=text,proto3,oneof"` +func (x *SessionEvent) GetConversationItemAdded() *SessionEvent_ConversationItemAdded { + if x != nil { + if x, ok := x.Event.(*SessionEvent_ConversationItemAdded_); ok { + return x.ConversationItemAdded + } + } + return nil } -func (*ChatMessage_ChatContent_Text) isChatMessage_ChatContent_Payload() {} +func (x *SessionEvent) GetUserInputTranscribed() *SessionEvent_UserInputTranscribed { + if x != nil { + if x, ok := x.Event.(*SessionEvent_UserInputTranscribed_); ok { + return x.UserInputTranscribed + } + } + return nil +} -type ChatContext_ChatItem struct { - state protoimpl.MessageState `protogen:"open.v1"` - // Types that are valid to be assigned to Item: +func (x *SessionEvent) GetFunctionToolsExecuted() *SessionEvent_FunctionToolsExecuted { + if x != nil { + if x, ok := x.Event.(*SessionEvent_FunctionToolsExecuted_); ok { + return x.FunctionToolsExecuted + } + } + return nil +} + +func (x *SessionEvent) GetMetricsCollected() *SessionEvent_MetricsCollected { + if x != nil { + if x, ok := x.Event.(*SessionEvent_MetricsCollected_); ok { + return x.MetricsCollected + } + } + return nil +} + +func (x *SessionEvent) GetError() *SessionEvent_Error { + if x != nil { + if x, ok := x.Event.(*SessionEvent_Error_); ok { + return x.Error + } + } + return nil +} + +type isSessionEvent_Event interface { + isSessionEvent_Event() +} + +type SessionEvent_AgentStateChanged_ struct { + AgentStateChanged *SessionEvent_AgentStateChanged `protobuf:"bytes,10,opt,name=agent_state_changed,json=agentStateChanged,proto3,oneof"` +} + +type SessionEvent_UserStateChanged_ struct { + UserStateChanged *SessionEvent_UserStateChanged `protobuf:"bytes,11,opt,name=user_state_changed,json=userStateChanged,proto3,oneof"` +} + +type SessionEvent_ConversationItemAdded_ struct { + ConversationItemAdded *SessionEvent_ConversationItemAdded `protobuf:"bytes,12,opt,name=conversation_item_added,json=conversationItemAdded,proto3,oneof"` +} + +type SessionEvent_UserInputTranscribed_ struct { + UserInputTranscribed *SessionEvent_UserInputTranscribed `protobuf:"bytes,13,opt,name=user_input_transcribed,json=userInputTranscribed,proto3,oneof"` +} + +type SessionEvent_FunctionToolsExecuted_ struct { + FunctionToolsExecuted *SessionEvent_FunctionToolsExecuted `protobuf:"bytes,14,opt,name=function_tools_executed,json=functionToolsExecuted,proto3,oneof"` +} + +type SessionEvent_MetricsCollected_ struct { + MetricsCollected *SessionEvent_MetricsCollected `protobuf:"bytes,15,opt,name=metrics_collected,json=metricsCollected,proto3,oneof"` +} + +type SessionEvent_Error_ struct { + Error *SessionEvent_Error `protobuf:"bytes,16,opt,name=error,proto3,oneof"` +} + +func (*SessionEvent_AgentStateChanged_) isSessionEvent_Event() {} + +func (*SessionEvent_UserStateChanged_) isSessionEvent_Event() {} + +func (*SessionEvent_ConversationItemAdded_) isSessionEvent_Event() {} + +func (*SessionEvent_UserInputTranscribed_) isSessionEvent_Event() {} + +func (*SessionEvent_FunctionToolsExecuted_) isSessionEvent_Event() {} + +func (*SessionEvent_MetricsCollected_) isSessionEvent_Event() {} + +func (*SessionEvent_Error_) isSessionEvent_Event() {} + +type SessionRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // Types that are valid to be assigned to Request: // - // *ChatContext_ChatItem_Message - // *ChatContext_ChatItem_FunctionCall - // *ChatContext_ChatItem_FunctionCallOutput - // *ChatContext_ChatItem_AgentHandoff - Item isChatContext_ChatItem_Item `protobuf_oneof:"item"` + // *SessionRequest_Ping_ + // *SessionRequest_GetState_ + // *SessionRequest_GetChatHistory_ + // *SessionRequest_SendMessage_ + Request isSessionRequest_Request `protobuf_oneof:"request"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } -func (x *ChatContext_ChatItem) Reset() { - *x = ChatContext_ChatItem{} - mi := &file_agent_livekit_agent_session_proto_msgTypes[9] +func (x *SessionRequest) Reset() { + *x = SessionRequest{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ChatContext_ChatItem) String() string { +func (x *SessionRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ChatContext_ChatItem) ProtoMessage() {} +func (*SessionRequest) ProtoMessage() {} -func (x *ChatContext_ChatItem) ProtoReflect() protoreflect.Message { - mi := &file_agent_livekit_agent_session_proto_msgTypes[9] +func (x *SessionRequest) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -726,129 +927,1416 @@ func (x *ChatContext_ChatItem) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ChatContext_ChatItem.ProtoReflect.Descriptor instead. -func (*ChatContext_ChatItem) Descriptor() ([]byte, []int) { - return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{5, 0} +// Deprecated: Use SessionRequest.ProtoReflect.Descriptor instead. +func (*SessionRequest) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{8} } -func (x *ChatContext_ChatItem) GetItem() isChatContext_ChatItem_Item { +func (x *SessionRequest) GetRequestId() string { if x != nil { - return x.Item + return x.RequestId + } + return "" +} + +func (x *SessionRequest) GetRequest() isSessionRequest_Request { + if x != nil { + return x.Request } return nil } -func (x *ChatContext_ChatItem) GetMessage() *ChatMessage { +func (x *SessionRequest) GetPing() *SessionRequest_Ping { if x != nil { - if x, ok := x.Item.(*ChatContext_ChatItem_Message); ok { - return x.Message + if x, ok := x.Request.(*SessionRequest_Ping_); ok { + return x.Ping } } return nil } -func (x *ChatContext_ChatItem) GetFunctionCall() *FunctionCall { +func (x *SessionRequest) GetGetState() *SessionRequest_GetState { if x != nil { - if x, ok := x.Item.(*ChatContext_ChatItem_FunctionCall); ok { - return x.FunctionCall + if x, ok := x.Request.(*SessionRequest_GetState_); ok { + return x.GetState } } return nil } -func (x *ChatContext_ChatItem) GetFunctionCallOutput() *FunctionCallOutput { +func (x *SessionRequest) GetGetChatHistory() *SessionRequest_GetChatHistory { if x != nil { - if x, ok := x.Item.(*ChatContext_ChatItem_FunctionCallOutput); ok { - return x.FunctionCallOutput + if x, ok := x.Request.(*SessionRequest_GetChatHistory_); ok { + return x.GetChatHistory } } return nil } -func (x *ChatContext_ChatItem) GetAgentHandoff() *AgentHandoff { +func (x *SessionRequest) GetSendMessage() *SessionRequest_SendMessage { if x != nil { - if x, ok := x.Item.(*ChatContext_ChatItem_AgentHandoff); ok { - return x.AgentHandoff + if x, ok := x.Request.(*SessionRequest_SendMessage_); ok { + return x.SendMessage } } return nil } -type isChatContext_ChatItem_Item interface { - isChatContext_ChatItem_Item() +type isSessionRequest_Request interface { + isSessionRequest_Request() } -type ChatContext_ChatItem_Message struct { - Message *ChatMessage `protobuf:"bytes,1,opt,name=message,proto3,oneof"` +type SessionRequest_Ping_ struct { + Ping *SessionRequest_Ping `protobuf:"bytes,2,opt,name=ping,proto3,oneof"` } -type ChatContext_ChatItem_FunctionCall struct { - FunctionCall *FunctionCall `protobuf:"bytes,2,opt,name=function_call,json=functionCall,proto3,oneof"` +type SessionRequest_GetState_ struct { + GetState *SessionRequest_GetState `protobuf:"bytes,3,opt,name=get_state,json=getState,proto3,oneof"` } -type ChatContext_ChatItem_FunctionCallOutput struct { - FunctionCallOutput *FunctionCallOutput `protobuf:"bytes,3,opt,name=function_call_output,json=functionCallOutput,proto3,oneof"` +type SessionRequest_GetChatHistory_ struct { + GetChatHistory *SessionRequest_GetChatHistory `protobuf:"bytes,4,opt,name=get_chat_history,json=getChatHistory,proto3,oneof"` } -type ChatContext_ChatItem_AgentHandoff struct { - AgentHandoff *AgentHandoff `protobuf:"bytes,4,opt,name=agent_handoff,json=agentHandoff,proto3,oneof"` +type SessionRequest_SendMessage_ struct { + SendMessage *SessionRequest_SendMessage `protobuf:"bytes,5,opt,name=send_message,json=sendMessage,proto3,oneof"` } -func (*ChatContext_ChatItem_Message) isChatContext_ChatItem_Item() {} +func (*SessionRequest_Ping_) isSessionRequest_Request() {} -func (*ChatContext_ChatItem_FunctionCall) isChatContext_ChatItem_Item() {} +func (*SessionRequest_GetState_) isSessionRequest_Request() {} -func (*ChatContext_ChatItem_FunctionCallOutput) isChatContext_ChatItem_Item() {} +func (*SessionRequest_GetChatHistory_) isSessionRequest_Request() {} -func (*ChatContext_ChatItem_AgentHandoff) isChatContext_ChatItem_Item() {} +func (*SessionRequest_SendMessage_) isSessionRequest_Request() {} -var File_agent_livekit_agent_session_proto protoreflect.FileDescriptor +type SessionResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + Error *string `protobuf:"bytes,2,opt,name=error,proto3,oneof" json:"error,omitempty"` + // Types that are valid to be assigned to Response: + // + // *SessionResponse_Pong_ + // *SessionResponse_GetState + // *SessionResponse_GetChatHistory + // *SessionResponse_SendMessage + Response isSessionResponse_Response `protobuf_oneof:"response"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} -const file_agent_livekit_agent_session_proto_rawDesc = "" + - "\n" + - "!agent/livekit_agent_session.proto\x12\rlivekit.agent\x1a\x1fgoogle/protobuf/timestamp.proto\"\xcd\x04\n" + - "\rMetricsReport\x12J\n" + - "\x13started_speaking_at\x18\x01 \x01(\v2\x1a.google.protobuf.TimestampR\x11startedSpeakingAt\x12J\n" + - "\x13stopped_speaking_at\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\x11stoppedSpeakingAt\x124\n" + - "\x13transcription_delay\x18\x03 \x01(\x01H\x00R\x12transcriptionDelay\x88\x01\x01\x12.\n" + - "\x11end_of_turn_delay\x18\x04 \x01(\x01H\x01R\x0eendOfTurnDelay\x88\x01\x01\x12C\n" + - "\x1con_user_turn_completed_delay\x18\x05 \x01(\x01H\x02R\x18onUserTurnCompletedDelay\x88\x01\x01\x12'\n" + - "\rllm_node_ttft\x18\x06 \x01(\x01H\x03R\vllmNodeTtft\x88\x01\x01\x12'\n" + - "\rtts_node_ttfb\x18\a \x01(\x01H\x04R\vttsNodeTtfb\x88\x01\x01\x12$\n" + - "\ve2e_latency\x18\b \x01(\x01H\x05R\n" + - "e2eLatency\x88\x01\x01B\x16\n" + - "\x14_transcription_delayB\x14\n" + - "\x12_end_of_turn_delayB\x1f\n" + - "\x1d_on_user_turn_completed_delayB\x10\n" + - "\x0e_llm_node_ttftB\x10\n" + - "\x0e_tts_node_ttfbB\x0e\n" + - "\f_e2e_latency\"\x9c\x04\n" + - "\vChatMessage\x12\x0e\n" + - "\x02id\x18\x01 \x01(\tR\x02id\x12+\n" + - "\x04role\x18\x02 \x01(\x0e2\x17.livekit.agent.ChatRoleR\x04role\x12@\n" + - "\acontent\x18\x03 \x03(\v2&.livekit.agent.ChatMessage.ChatContentR\acontent\x12 \n" + - "\vinterrupted\x18\x04 \x01(\bR\vinterrupted\x128\n" + - "\x15transcript_confidence\x18\x05 \x01(\x01H\x00R\x14transcriptConfidence\x88\x01\x01\x12;\n" + - "\x05extra\x18\x06 \x03(\v2%.livekit.agent.ChatMessage.ExtraEntryR\x05extra\x126\n" + - "\ametrics\x18\a \x01(\v2\x1c.livekit.agent.MetricsReportR\ametrics\x129\n" + - "\n" + - "created_at\x18\b \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x1a.\n" + - "\vChatContent\x12\x14\n" + - "\x04text\x18\x01 \x01(\tH\x00R\x04textB\t\n" + - "\apayload\x1a8\n" + - "\n" + - "ExtraEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B\x18\n" + - "\x16_transcript_confidence\"\xa4\x01\n" + - "\fFunctionCall\x12\x0e\n" + - "\x02id\x18\x01 \x01(\tR\x02id\x12\x17\n" + - "\acall_id\x18\x02 \x01(\tR\x06callId\x12\x1c\n" + - "\targuments\x18\x03 \x01(\tR\targuments\x12\x12\n" + - "\x04name\x18\x04 \x01(\tR\x04name\x129\n" + - "\n" + - "created_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\"\xbf\x01\n" + - "\x12FunctionCallOutput\x12\x0e\n" + +func (x *SessionResponse) Reset() { + *x = SessionResponse{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SessionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SessionResponse) ProtoMessage() {} + +func (x *SessionResponse) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[9] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SessionResponse.ProtoReflect.Descriptor instead. +func (*SessionResponse) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{9} +} + +func (x *SessionResponse) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +func (x *SessionResponse) GetError() string { + if x != nil && x.Error != nil { + return *x.Error + } + return "" +} + +func (x *SessionResponse) GetResponse() isSessionResponse_Response { + if x != nil { + return x.Response + } + return nil +} + +func (x *SessionResponse) GetPong() *SessionResponse_Pong { + if x != nil { + if x, ok := x.Response.(*SessionResponse_Pong_); ok { + return x.Pong + } + } + return nil +} + +func (x *SessionResponse) GetGetState() *SessionRequest_GetStateResponse { + if x != nil { + if x, ok := x.Response.(*SessionResponse_GetState); ok { + return x.GetState + } + } + return nil +} + +func (x *SessionResponse) GetGetChatHistory() *SessionRequest_GetChatHistoryResponse { + if x != nil { + if x, ok := x.Response.(*SessionResponse_GetChatHistory); ok { + return x.GetChatHistory + } + } + return nil +} + +func (x *SessionResponse) GetSendMessage() *SessionRequest_SendMessageResponse { + if x != nil { + if x, ok := x.Response.(*SessionResponse_SendMessage); ok { + return x.SendMessage + } + } + return nil +} + +type isSessionResponse_Response interface { + isSessionResponse_Response() +} + +type SessionResponse_Pong_ struct { + Pong *SessionResponse_Pong `protobuf:"bytes,3,opt,name=pong,proto3,oneof"` +} + +type SessionResponse_GetState struct { + GetState *SessionRequest_GetStateResponse `protobuf:"bytes,4,opt,name=get_state,json=getState,proto3,oneof"` +} + +type SessionResponse_GetChatHistory struct { + GetChatHistory *SessionRequest_GetChatHistoryResponse `protobuf:"bytes,5,opt,name=get_chat_history,json=getChatHistory,proto3,oneof"` +} + +type SessionResponse_SendMessage struct { + SendMessage *SessionRequest_SendMessageResponse `protobuf:"bytes,6,opt,name=send_message,json=sendMessage,proto3,oneof"` +} + +func (*SessionResponse_Pong_) isSessionResponse_Response() {} + +func (*SessionResponse_GetState) isSessionResponse_Response() {} + +func (*SessionResponse_GetChatHistory) isSessionResponse_Response() {} + +func (*SessionResponse_SendMessage) isSessionResponse_Response() {} + +type SessionAudioPlaybackFlush struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SessionAudioPlaybackFlush) Reset() { + *x = SessionAudioPlaybackFlush{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SessionAudioPlaybackFlush) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SessionAudioPlaybackFlush) ProtoMessage() {} + +func (x *SessionAudioPlaybackFlush) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[10] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SessionAudioPlaybackFlush.ProtoReflect.Descriptor instead. +func (*SessionAudioPlaybackFlush) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{10} +} + +type SessionAudioPlaybackClear struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SessionAudioPlaybackClear) Reset() { + *x = SessionAudioPlaybackClear{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SessionAudioPlaybackClear) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SessionAudioPlaybackClear) ProtoMessage() {} + +func (x *SessionAudioPlaybackClear) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[11] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SessionAudioPlaybackClear.ProtoReflect.Descriptor instead. +func (*SessionAudioPlaybackClear) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{11} +} + +type SessionAudioPlaybackFinished struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SessionAudioPlaybackFinished) Reset() { + *x = SessionAudioPlaybackFinished{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SessionAudioPlaybackFinished) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SessionAudioPlaybackFinished) ProtoMessage() {} + +func (x *SessionAudioPlaybackFinished) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[12] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SessionAudioPlaybackFinished.ProtoReflect.Descriptor instead. +func (*SessionAudioPlaybackFinished) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{12} +} + +type AgentSessionMessage struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Message: + // + // *AgentSessionMessage_AudioInput + // *AgentSessionMessage_AudioOutput + // *AgentSessionMessage_Event + // *AgentSessionMessage_Request + // *AgentSessionMessage_Response + // *AgentSessionMessage_AudioPlaybackFlush + // *AgentSessionMessage_AudioPlaybackClear + // *AgentSessionMessage_AudioPlaybackFinished + Message isAgentSessionMessage_Message `protobuf_oneof:"message"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AgentSessionMessage) Reset() { + *x = AgentSessionMessage{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AgentSessionMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AgentSessionMessage) ProtoMessage() {} + +func (x *AgentSessionMessage) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[13] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AgentSessionMessage.ProtoReflect.Descriptor instead. +func (*AgentSessionMessage) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{13} +} + +func (x *AgentSessionMessage) GetMessage() isAgentSessionMessage_Message { + if x != nil { + return x.Message + } + return nil +} + +func (x *AgentSessionMessage) GetAudioInput() *SessionAudioFrame { + if x != nil { + if x, ok := x.Message.(*AgentSessionMessage_AudioInput); ok { + return x.AudioInput + } + } + return nil +} + +func (x *AgentSessionMessage) GetAudioOutput() *SessionAudioFrame { + if x != nil { + if x, ok := x.Message.(*AgentSessionMessage_AudioOutput); ok { + return x.AudioOutput + } + } + return nil +} + +func (x *AgentSessionMessage) GetEvent() *SessionEvent { + if x != nil { + if x, ok := x.Message.(*AgentSessionMessage_Event); ok { + return x.Event + } + } + return nil +} + +func (x *AgentSessionMessage) GetRequest() *SessionRequest { + if x != nil { + if x, ok := x.Message.(*AgentSessionMessage_Request); ok { + return x.Request + } + } + return nil +} + +func (x *AgentSessionMessage) GetResponse() *SessionResponse { + if x != nil { + if x, ok := x.Message.(*AgentSessionMessage_Response); ok { + return x.Response + } + } + return nil +} + +func (x *AgentSessionMessage) GetAudioPlaybackFlush() *SessionAudioPlaybackFlush { + if x != nil { + if x, ok := x.Message.(*AgentSessionMessage_AudioPlaybackFlush); ok { + return x.AudioPlaybackFlush + } + } + return nil +} + +func (x *AgentSessionMessage) GetAudioPlaybackClear() *SessionAudioPlaybackClear { + if x != nil { + if x, ok := x.Message.(*AgentSessionMessage_AudioPlaybackClear); ok { + return x.AudioPlaybackClear + } + } + return nil +} + +func (x *AgentSessionMessage) GetAudioPlaybackFinished() *SessionAudioPlaybackFinished { + if x != nil { + if x, ok := x.Message.(*AgentSessionMessage_AudioPlaybackFinished); ok { + return x.AudioPlaybackFinished + } + } + return nil +} + +type isAgentSessionMessage_Message interface { + isAgentSessionMessage_Message() +} + +type AgentSessionMessage_AudioInput struct { + AudioInput *SessionAudioFrame `protobuf:"bytes,1,opt,name=audio_input,json=audioInput,proto3,oneof"` +} + +type AgentSessionMessage_AudioOutput struct { + AudioOutput *SessionAudioFrame `protobuf:"bytes,2,opt,name=audio_output,json=audioOutput,proto3,oneof"` +} + +type AgentSessionMessage_Event struct { + Event *SessionEvent `protobuf:"bytes,3,opt,name=event,proto3,oneof"` +} + +type AgentSessionMessage_Request struct { + Request *SessionRequest `protobuf:"bytes,4,opt,name=request,proto3,oneof"` +} + +type AgentSessionMessage_Response struct { + Response *SessionResponse `protobuf:"bytes,5,opt,name=response,proto3,oneof"` +} + +type AgentSessionMessage_AudioPlaybackFlush struct { + AudioPlaybackFlush *SessionAudioPlaybackFlush `protobuf:"bytes,6,opt,name=audio_playback_flush,json=audioPlaybackFlush,proto3,oneof"` +} + +type AgentSessionMessage_AudioPlaybackClear struct { + AudioPlaybackClear *SessionAudioPlaybackClear `protobuf:"bytes,7,opt,name=audio_playback_clear,json=audioPlaybackClear,proto3,oneof"` +} + +type AgentSessionMessage_AudioPlaybackFinished struct { + AudioPlaybackFinished *SessionAudioPlaybackFinished `protobuf:"bytes,8,opt,name=audio_playback_finished,json=audioPlaybackFinished,proto3,oneof"` +} + +func (*AgentSessionMessage_AudioInput) isAgentSessionMessage_Message() {} + +func (*AgentSessionMessage_AudioOutput) isAgentSessionMessage_Message() {} + +func (*AgentSessionMessage_Event) isAgentSessionMessage_Message() {} + +func (*AgentSessionMessage_Request) isAgentSessionMessage_Message() {} + +func (*AgentSessionMessage_Response) isAgentSessionMessage_Message() {} + +func (*AgentSessionMessage_AudioPlaybackFlush) isAgentSessionMessage_Message() {} + +func (*AgentSessionMessage_AudioPlaybackClear) isAgentSessionMessage_Message() {} + +func (*AgentSessionMessage_AudioPlaybackFinished) isAgentSessionMessage_Message() {} + +type ChatMessage_ChatContent struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Payload: + // + // *ChatMessage_ChatContent_Text + Payload isChatMessage_ChatContent_Payload `protobuf_oneof:"payload"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ChatMessage_ChatContent) Reset() { + *x = ChatMessage_ChatContent{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ChatMessage_ChatContent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChatMessage_ChatContent) ProtoMessage() {} + +func (x *ChatMessage_ChatContent) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[14] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChatMessage_ChatContent.ProtoReflect.Descriptor instead. +func (*ChatMessage_ChatContent) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{1, 0} +} + +func (x *ChatMessage_ChatContent) GetPayload() isChatMessage_ChatContent_Payload { + if x != nil { + return x.Payload + } + return nil +} + +func (x *ChatMessage_ChatContent) GetText() string { + if x != nil { + if x, ok := x.Payload.(*ChatMessage_ChatContent_Text); ok { + return x.Text + } + } + return "" +} + +type isChatMessage_ChatContent_Payload interface { + isChatMessage_ChatContent_Payload() +} + +type ChatMessage_ChatContent_Text struct { + Text string `protobuf:"bytes,1,opt,name=text,proto3,oneof"` +} + +func (*ChatMessage_ChatContent_Text) isChatMessage_ChatContent_Payload() {} + +type ChatContext_ChatItem struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Item: + // + // *ChatContext_ChatItem_Message + // *ChatContext_ChatItem_FunctionCall + // *ChatContext_ChatItem_FunctionCallOutput + // *ChatContext_ChatItem_AgentHandoff + Item isChatContext_ChatItem_Item `protobuf_oneof:"item"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ChatContext_ChatItem) Reset() { + *x = ChatContext_ChatItem{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ChatContext_ChatItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChatContext_ChatItem) ProtoMessage() {} + +func (x *ChatContext_ChatItem) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[16] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChatContext_ChatItem.ProtoReflect.Descriptor instead. +func (*ChatContext_ChatItem) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{5, 0} +} + +func (x *ChatContext_ChatItem) GetItem() isChatContext_ChatItem_Item { + if x != nil { + return x.Item + } + return nil +} + +func (x *ChatContext_ChatItem) GetMessage() *ChatMessage { + if x != nil { + if x, ok := x.Item.(*ChatContext_ChatItem_Message); ok { + return x.Message + } + } + return nil +} + +func (x *ChatContext_ChatItem) GetFunctionCall() *FunctionCall { + if x != nil { + if x, ok := x.Item.(*ChatContext_ChatItem_FunctionCall); ok { + return x.FunctionCall + } + } + return nil +} + +func (x *ChatContext_ChatItem) GetFunctionCallOutput() *FunctionCallOutput { + if x != nil { + if x, ok := x.Item.(*ChatContext_ChatItem_FunctionCallOutput); ok { + return x.FunctionCallOutput + } + } + return nil +} + +func (x *ChatContext_ChatItem) GetAgentHandoff() *AgentHandoff { + if x != nil { + if x, ok := x.Item.(*ChatContext_ChatItem_AgentHandoff); ok { + return x.AgentHandoff + } + } + return nil +} + +type isChatContext_ChatItem_Item interface { + isChatContext_ChatItem_Item() +} + +type ChatContext_ChatItem_Message struct { + Message *ChatMessage `protobuf:"bytes,1,opt,name=message,proto3,oneof"` +} + +type ChatContext_ChatItem_FunctionCall struct { + FunctionCall *FunctionCall `protobuf:"bytes,2,opt,name=function_call,json=functionCall,proto3,oneof"` +} + +type ChatContext_ChatItem_FunctionCallOutput struct { + FunctionCallOutput *FunctionCallOutput `protobuf:"bytes,3,opt,name=function_call_output,json=functionCallOutput,proto3,oneof"` +} + +type ChatContext_ChatItem_AgentHandoff struct { + AgentHandoff *AgentHandoff `protobuf:"bytes,4,opt,name=agent_handoff,json=agentHandoff,proto3,oneof"` +} + +func (*ChatContext_ChatItem_Message) isChatContext_ChatItem_Item() {} + +func (*ChatContext_ChatItem_FunctionCall) isChatContext_ChatItem_Item() {} + +func (*ChatContext_ChatItem_FunctionCallOutput) isChatContext_ChatItem_Item() {} + +func (*ChatContext_ChatItem_AgentHandoff) isChatContext_ChatItem_Item() {} + +type SessionEvent_AgentStateChanged struct { + state protoimpl.MessageState `protogen:"open.v1"` + OldState SessionAgentState `protobuf:"varint,1,opt,name=old_state,json=oldState,proto3,enum=livekit.agent.SessionAgentState" json:"old_state,omitempty"` + NewState SessionAgentState `protobuf:"varint,2,opt,name=new_state,json=newState,proto3,enum=livekit.agent.SessionAgentState" json:"new_state,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SessionEvent_AgentStateChanged) Reset() { + *x = SessionEvent_AgentStateChanged{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SessionEvent_AgentStateChanged) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SessionEvent_AgentStateChanged) ProtoMessage() {} + +func (x *SessionEvent_AgentStateChanged) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[17] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SessionEvent_AgentStateChanged.ProtoReflect.Descriptor instead. +func (*SessionEvent_AgentStateChanged) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{7, 0} +} + +func (x *SessionEvent_AgentStateChanged) GetOldState() SessionAgentState { + if x != nil { + return x.OldState + } + return SessionAgentState_SESSION_AGENT_STATE_INITIALIZING +} + +func (x *SessionEvent_AgentStateChanged) GetNewState() SessionAgentState { + if x != nil { + return x.NewState + } + return SessionAgentState_SESSION_AGENT_STATE_INITIALIZING +} + +type SessionEvent_UserStateChanged struct { + state protoimpl.MessageState `protogen:"open.v1"` + OldState SessionUserState `protobuf:"varint,1,opt,name=old_state,json=oldState,proto3,enum=livekit.agent.SessionUserState" json:"old_state,omitempty"` + NewState SessionUserState `protobuf:"varint,2,opt,name=new_state,json=newState,proto3,enum=livekit.agent.SessionUserState" json:"new_state,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SessionEvent_UserStateChanged) Reset() { + *x = SessionEvent_UserStateChanged{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SessionEvent_UserStateChanged) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SessionEvent_UserStateChanged) ProtoMessage() {} + +func (x *SessionEvent_UserStateChanged) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[18] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SessionEvent_UserStateChanged.ProtoReflect.Descriptor instead. +func (*SessionEvent_UserStateChanged) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{7, 1} +} + +func (x *SessionEvent_UserStateChanged) GetOldState() SessionUserState { + if x != nil { + return x.OldState + } + return SessionUserState_SESSION_USER_STATE_SPEAKING +} + +func (x *SessionEvent_UserStateChanged) GetNewState() SessionUserState { + if x != nil { + return x.NewState + } + return SessionUserState_SESSION_USER_STATE_SPEAKING +} + +type SessionEvent_ConversationItemAdded struct { + state protoimpl.MessageState `protogen:"open.v1"` + Item *ChatContext_ChatItem `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SessionEvent_ConversationItemAdded) Reset() { + *x = SessionEvent_ConversationItemAdded{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SessionEvent_ConversationItemAdded) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SessionEvent_ConversationItemAdded) ProtoMessage() {} + +func (x *SessionEvent_ConversationItemAdded) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[19] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SessionEvent_ConversationItemAdded.ProtoReflect.Descriptor instead. +func (*SessionEvent_ConversationItemAdded) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{7, 2} +} + +func (x *SessionEvent_ConversationItemAdded) GetItem() *ChatContext_ChatItem { + if x != nil { + return x.Item + } + return nil +} + +type SessionEvent_UserInputTranscribed struct { + state protoimpl.MessageState `protogen:"open.v1"` + Transcript string `protobuf:"bytes,1,opt,name=transcript,proto3" json:"transcript,omitempty"` + IsFinal bool `protobuf:"varint,2,opt,name=is_final,json=isFinal,proto3" json:"is_final,omitempty"` + Language *string `protobuf:"bytes,3,opt,name=language,proto3,oneof" json:"language,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SessionEvent_UserInputTranscribed) Reset() { + *x = SessionEvent_UserInputTranscribed{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SessionEvent_UserInputTranscribed) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SessionEvent_UserInputTranscribed) ProtoMessage() {} + +func (x *SessionEvent_UserInputTranscribed) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[20] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SessionEvent_UserInputTranscribed.ProtoReflect.Descriptor instead. +func (*SessionEvent_UserInputTranscribed) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{7, 3} +} + +func (x *SessionEvent_UserInputTranscribed) GetTranscript() string { + if x != nil { + return x.Transcript + } + return "" +} + +func (x *SessionEvent_UserInputTranscribed) GetIsFinal() bool { + if x != nil { + return x.IsFinal + } + return false +} + +func (x *SessionEvent_UserInputTranscribed) GetLanguage() string { + if x != nil && x.Language != nil { + return *x.Language + } + return "" +} + +type SessionEvent_FunctionToolsExecuted struct { + state protoimpl.MessageState `protogen:"open.v1"` + FunctionCalls []*FunctionCall `protobuf:"bytes,1,rep,name=function_calls,json=functionCalls,proto3" json:"function_calls,omitempty"` + FunctionCallOutputs []*FunctionCallOutput `protobuf:"bytes,2,rep,name=function_call_outputs,json=functionCallOutputs,proto3" json:"function_call_outputs,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SessionEvent_FunctionToolsExecuted) Reset() { + *x = SessionEvent_FunctionToolsExecuted{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SessionEvent_FunctionToolsExecuted) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SessionEvent_FunctionToolsExecuted) ProtoMessage() {} + +func (x *SessionEvent_FunctionToolsExecuted) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[21] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SessionEvent_FunctionToolsExecuted.ProtoReflect.Descriptor instead. +func (*SessionEvent_FunctionToolsExecuted) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{7, 4} +} + +func (x *SessionEvent_FunctionToolsExecuted) GetFunctionCalls() []*FunctionCall { + if x != nil { + return x.FunctionCalls + } + return nil +} + +func (x *SessionEvent_FunctionToolsExecuted) GetFunctionCallOutputs() []*FunctionCallOutput { + if x != nil { + return x.FunctionCallOutputs + } + return nil +} + +type SessionEvent_MetricsCollected struct { + state protoimpl.MessageState `protogen:"open.v1"` + Metrics *MetricsReport `protobuf:"bytes,1,opt,name=metrics,proto3" json:"metrics,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SessionEvent_MetricsCollected) Reset() { + *x = SessionEvent_MetricsCollected{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SessionEvent_MetricsCollected) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SessionEvent_MetricsCollected) ProtoMessage() {} + +func (x *SessionEvent_MetricsCollected) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[22] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SessionEvent_MetricsCollected.ProtoReflect.Descriptor instead. +func (*SessionEvent_MetricsCollected) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{7, 5} +} + +func (x *SessionEvent_MetricsCollected) GetMetrics() *MetricsReport { + if x != nil { + return x.Metrics + } + return nil +} + +type SessionEvent_Error struct { + state protoimpl.MessageState `protogen:"open.v1"` + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SessionEvent_Error) Reset() { + *x = SessionEvent_Error{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SessionEvent_Error) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SessionEvent_Error) ProtoMessage() {} + +func (x *SessionEvent_Error) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[23] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SessionEvent_Error.ProtoReflect.Descriptor instead. +func (*SessionEvent_Error) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{7, 6} +} + +func (x *SessionEvent_Error) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +type SessionRequest_Ping struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SessionRequest_Ping) Reset() { + *x = SessionRequest_Ping{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SessionRequest_Ping) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SessionRequest_Ping) ProtoMessage() {} + +func (x *SessionRequest_Ping) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[24] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SessionRequest_Ping.ProtoReflect.Descriptor instead. +func (*SessionRequest_Ping) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{8, 0} +} + +type SessionRequest_GetState struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SessionRequest_GetState) Reset() { + *x = SessionRequest_GetState{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SessionRequest_GetState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SessionRequest_GetState) ProtoMessage() {} + +func (x *SessionRequest_GetState) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[25] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SessionRequest_GetState.ProtoReflect.Descriptor instead. +func (*SessionRequest_GetState) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{8, 1} +} + +type SessionRequest_GetStateResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + AgentState SessionAgentState `protobuf:"varint,1,opt,name=agent_state,json=agentState,proto3,enum=livekit.agent.SessionAgentState" json:"agent_state,omitempty"` + UserState SessionUserState `protobuf:"varint,2,opt,name=user_state,json=userState,proto3,enum=livekit.agent.SessionUserState" json:"user_state,omitempty"` + AgentId string `protobuf:"bytes,3,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SessionRequest_GetStateResponse) Reset() { + *x = SessionRequest_GetStateResponse{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SessionRequest_GetStateResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SessionRequest_GetStateResponse) ProtoMessage() {} + +func (x *SessionRequest_GetStateResponse) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[26] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SessionRequest_GetStateResponse.ProtoReflect.Descriptor instead. +func (*SessionRequest_GetStateResponse) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{8, 2} +} + +func (x *SessionRequest_GetStateResponse) GetAgentState() SessionAgentState { + if x != nil { + return x.AgentState + } + return SessionAgentState_SESSION_AGENT_STATE_INITIALIZING +} + +func (x *SessionRequest_GetStateResponse) GetUserState() SessionUserState { + if x != nil { + return x.UserState + } + return SessionUserState_SESSION_USER_STATE_SPEAKING +} + +func (x *SessionRequest_GetStateResponse) GetAgentId() string { + if x != nil { + return x.AgentId + } + return "" +} + +type SessionRequest_GetChatHistory struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SessionRequest_GetChatHistory) Reset() { + *x = SessionRequest_GetChatHistory{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SessionRequest_GetChatHistory) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SessionRequest_GetChatHistory) ProtoMessage() {} + +func (x *SessionRequest_GetChatHistory) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[27] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SessionRequest_GetChatHistory.ProtoReflect.Descriptor instead. +func (*SessionRequest_GetChatHistory) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{8, 3} +} + +type SessionRequest_GetChatHistoryResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Items []*ChatContext_ChatItem `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SessionRequest_GetChatHistoryResponse) Reset() { + *x = SessionRequest_GetChatHistoryResponse{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SessionRequest_GetChatHistoryResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SessionRequest_GetChatHistoryResponse) ProtoMessage() {} + +func (x *SessionRequest_GetChatHistoryResponse) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[28] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SessionRequest_GetChatHistoryResponse.ProtoReflect.Descriptor instead. +func (*SessionRequest_GetChatHistoryResponse) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{8, 4} +} + +func (x *SessionRequest_GetChatHistoryResponse) GetItems() []*ChatContext_ChatItem { + if x != nil { + return x.Items + } + return nil +} + +type SessionRequest_SendMessage struct { + state protoimpl.MessageState `protogen:"open.v1"` + Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SessionRequest_SendMessage) Reset() { + *x = SessionRequest_SendMessage{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SessionRequest_SendMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SessionRequest_SendMessage) ProtoMessage() {} + +func (x *SessionRequest_SendMessage) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[29] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SessionRequest_SendMessage.ProtoReflect.Descriptor instead. +func (*SessionRequest_SendMessage) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{8, 5} +} + +func (x *SessionRequest_SendMessage) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +type SessionRequest_SendMessageResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Items []*ChatContext_ChatItem `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SessionRequest_SendMessageResponse) Reset() { + *x = SessionRequest_SendMessageResponse{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SessionRequest_SendMessageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SessionRequest_SendMessageResponse) ProtoMessage() {} + +func (x *SessionRequest_SendMessageResponse) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[30] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SessionRequest_SendMessageResponse.ProtoReflect.Descriptor instead. +func (*SessionRequest_SendMessageResponse) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{8, 6} +} + +func (x *SessionRequest_SendMessageResponse) GetItems() []*ChatContext_ChatItem { + if x != nil { + return x.Items + } + return nil +} + +type SessionResponse_Pong struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SessionResponse_Pong) Reset() { + *x = SessionResponse_Pong{} + mi := &file_agent_livekit_agent_session_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SessionResponse_Pong) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SessionResponse_Pong) ProtoMessage() {} + +func (x *SessionResponse_Pong) ProtoReflect() protoreflect.Message { + mi := &file_agent_livekit_agent_session_proto_msgTypes[31] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SessionResponse_Pong.ProtoReflect.Descriptor instead. +func (*SessionResponse_Pong) Descriptor() ([]byte, []int) { + return file_agent_livekit_agent_session_proto_rawDescGZIP(), []int{9, 0} +} + +var File_agent_livekit_agent_session_proto protoreflect.FileDescriptor + +const file_agent_livekit_agent_session_proto_rawDesc = "" + + "\n" + + "!agent/livekit_agent_session.proto\x12\rlivekit.agent\x1a\x1fgoogle/protobuf/timestamp.proto\"\xcd\x04\n" + + "\rMetricsReport\x12J\n" + + "\x13started_speaking_at\x18\x01 \x01(\v2\x1a.google.protobuf.TimestampR\x11startedSpeakingAt\x12J\n" + + "\x13stopped_speaking_at\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\x11stoppedSpeakingAt\x124\n" + + "\x13transcription_delay\x18\x03 \x01(\x01H\x00R\x12transcriptionDelay\x88\x01\x01\x12.\n" + + "\x11end_of_turn_delay\x18\x04 \x01(\x01H\x01R\x0eendOfTurnDelay\x88\x01\x01\x12C\n" + + "\x1con_user_turn_completed_delay\x18\x05 \x01(\x01H\x02R\x18onUserTurnCompletedDelay\x88\x01\x01\x12'\n" + + "\rllm_node_ttft\x18\x06 \x01(\x01H\x03R\vllmNodeTtft\x88\x01\x01\x12'\n" + + "\rtts_node_ttfb\x18\a \x01(\x01H\x04R\vttsNodeTtfb\x88\x01\x01\x12$\n" + + "\ve2e_latency\x18\b \x01(\x01H\x05R\n" + + "e2eLatency\x88\x01\x01B\x16\n" + + "\x14_transcription_delayB\x14\n" + + "\x12_end_of_turn_delayB\x1f\n" + + "\x1d_on_user_turn_completed_delayB\x10\n" + + "\x0e_llm_node_ttftB\x10\n" + + "\x0e_tts_node_ttfbB\x0e\n" + + "\f_e2e_latency\"\x9c\x04\n" + + "\vChatMessage\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12+\n" + + "\x04role\x18\x02 \x01(\x0e2\x17.livekit.agent.ChatRoleR\x04role\x12@\n" + + "\acontent\x18\x03 \x03(\v2&.livekit.agent.ChatMessage.ChatContentR\acontent\x12 \n" + + "\vinterrupted\x18\x04 \x01(\bR\vinterrupted\x128\n" + + "\x15transcript_confidence\x18\x05 \x01(\x01H\x00R\x14transcriptConfidence\x88\x01\x01\x12;\n" + + "\x05extra\x18\x06 \x03(\v2%.livekit.agent.ChatMessage.ExtraEntryR\x05extra\x126\n" + + "\ametrics\x18\a \x01(\v2\x1c.livekit.agent.MetricsReportR\ametrics\x129\n" + + "\n" + + "created_at\x18\b \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x1a.\n" + + "\vChatContent\x12\x14\n" + + "\x04text\x18\x01 \x01(\tH\x00R\x04textB\t\n" + + "\apayload\x1a8\n" + + "\n" + + "ExtraEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B\x18\n" + + "\x16_transcript_confidence\"\xa4\x01\n" + + "\fFunctionCall\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x17\n" + + "\acall_id\x18\x02 \x01(\tR\x06callId\x12\x1c\n" + + "\targuments\x18\x03 \x01(\tR\targuments\x12\x12\n" + + "\x04name\x18\x04 \x01(\tR\x04name\x129\n" + + "\n" + + "created_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\"\xbf\x01\n" + + "\x12FunctionCallOutput\x12\x0e\n" + "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + "\x04name\x18\x02 \x01(\tR\x04name\x12\x17\n" + "\acall_id\x18\x03 \x01(\tR\x06callId\x12\x16\n" + @@ -872,20 +2360,113 @@ const file_agent_livekit_agent_session_proto_rawDesc = "" + "\rfunction_call\x18\x02 \x01(\v2\x1b.livekit.agent.FunctionCallH\x00R\ffunctionCall\x12U\n" + "\x14function_call_output\x18\x03 \x01(\v2!.livekit.agent.FunctionCallOutputH\x00R\x12functionCallOutput\x12B\n" + "\ragent_handoff\x18\x04 \x01(\v2\x1b.livekit.agent.AgentHandoffH\x00R\fagentHandoffB\x06\n" + - "\x04item\"\xd4\x01\n" + - "\x12AgentSessionReport\x12\x15\n" + - "\x06job_id\x18\x01 \x01(\tR\x05jobId\x12\x19\n" + - "\broom_sid\x18\x02 \x01(\tR\aroomSid\x12\x12\n" + - "\x04room\x18\x03 \x01(\tR\x04room\x12=\n" + - "\fchat_history\x18\x04 \x01(\v2\x1a.livekit.agent.ChatContextR\vchatHistory\x129\n" + + "\x04item\"\x9b\x01\n" + + "\x11SessionAudioFrame\x12\x12\n" + + "\x04data\x18\x01 \x01(\fR\x04data\x12\x1f\n" + + "\vsample_rate\x18\x02 \x01(\rR\n" + + "sampleRate\x12!\n" + + "\fnum_channels\x18\x03 \x01(\rR\vnumChannels\x12.\n" + + "\x13samples_per_channel\x18\x04 \x01(\rR\x11samplesPerChannel\"\x89\f\n" + + "\fSessionEvent\x129\n" + + "\n" + + "created_at\x18\x01 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x12_\n" + + "\x13agent_state_changed\x18\n" + + " \x01(\v2-.livekit.agent.SessionEvent.AgentStateChangedH\x00R\x11agentStateChanged\x12\\\n" + + "\x12user_state_changed\x18\v \x01(\v2,.livekit.agent.SessionEvent.UserStateChangedH\x00R\x10userStateChanged\x12k\n" + + "\x17conversation_item_added\x18\f \x01(\v21.livekit.agent.SessionEvent.ConversationItemAddedH\x00R\x15conversationItemAdded\x12h\n" + + "\x16user_input_transcribed\x18\r \x01(\v20.livekit.agent.SessionEvent.UserInputTranscribedH\x00R\x14userInputTranscribed\x12k\n" + + "\x17function_tools_executed\x18\x0e \x01(\v21.livekit.agent.SessionEvent.FunctionToolsExecutedH\x00R\x15functionToolsExecuted\x12[\n" + + "\x11metrics_collected\x18\x0f \x01(\v2,.livekit.agent.SessionEvent.MetricsCollectedH\x00R\x10metricsCollected\x129\n" + + "\x05error\x18\x10 \x01(\v2!.livekit.agent.SessionEvent.ErrorH\x00R\x05error\x1a\x91\x01\n" + + "\x11AgentStateChanged\x12=\n" + + "\told_state\x18\x01 \x01(\x0e2 .livekit.agent.SessionAgentStateR\boldState\x12=\n" + + "\tnew_state\x18\x02 \x01(\x0e2 .livekit.agent.SessionAgentStateR\bnewState\x1a\x8e\x01\n" + + "\x10UserStateChanged\x12<\n" + + "\told_state\x18\x01 \x01(\x0e2\x1f.livekit.agent.SessionUserStateR\boldState\x12<\n" + + "\tnew_state\x18\x02 \x01(\x0e2\x1f.livekit.agent.SessionUserStateR\bnewState\x1aP\n" + + "\x15ConversationItemAdded\x127\n" + + "\x04item\x18\x01 \x01(\v2#.livekit.agent.ChatContext.ChatItemR\x04item\x1a\x7f\n" + + "\x14UserInputTranscribed\x12\x1e\n" + + "\n" + + "transcript\x18\x01 \x01(\tR\n" + + "transcript\x12\x19\n" + + "\bis_final\x18\x02 \x01(\bR\aisFinal\x12\x1f\n" + + "\blanguage\x18\x03 \x01(\tH\x00R\blanguage\x88\x01\x01B\v\n" + + "\t_language\x1a\xb2\x01\n" + + "\x15FunctionToolsExecuted\x12B\n" + + "\x0efunction_calls\x18\x01 \x03(\v2\x1b.livekit.agent.FunctionCallR\rfunctionCalls\x12U\n" + + "\x15function_call_outputs\x18\x02 \x03(\v2!.livekit.agent.FunctionCallOutputR\x13functionCallOutputs\x1aJ\n" + + "\x10MetricsCollected\x126\n" + + "\ametrics\x18\x01 \x01(\v2\x1c.livekit.agent.MetricsReportR\ametrics\x1a!\n" + + "\x05Error\x12\x18\n" + + "\amessage\x18\x01 \x01(\tR\amessageB\a\n" + + "\x05event\"\x88\x06\n" + + "\x0eSessionRequest\x12\x1d\n" + + "\n" + + "request_id\x18\x01 \x01(\tR\trequestId\x128\n" + + "\x04ping\x18\x02 \x01(\v2\".livekit.agent.SessionRequest.PingH\x00R\x04ping\x12E\n" + + "\tget_state\x18\x03 \x01(\v2&.livekit.agent.SessionRequest.GetStateH\x00R\bgetState\x12X\n" + + "\x10get_chat_history\x18\x04 \x01(\v2,.livekit.agent.SessionRequest.GetChatHistoryH\x00R\x0egetChatHistory\x12N\n" + + "\fsend_message\x18\x05 \x01(\v2).livekit.agent.SessionRequest.SendMessageH\x00R\vsendMessage\x1a\x06\n" + + "\x04Ping\x1a\n" + + "\n" + + "\bGetState\x1a\xb0\x01\n" + + "\x10GetStateResponse\x12A\n" + + "\vagent_state\x18\x01 \x01(\x0e2 .livekit.agent.SessionAgentStateR\n" + + "agentState\x12>\n" + "\n" + - "created_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt*>\n" + + "user_state\x18\x02 \x01(\x0e2\x1f.livekit.agent.SessionUserStateR\tuserState\x12\x19\n" + + "\bagent_id\x18\x03 \x01(\tR\aagentId\x1a\x10\n" + + "\x0eGetChatHistory\x1aS\n" + + "\x16GetChatHistoryResponse\x129\n" + + "\x05items\x18\x01 \x03(\v2#.livekit.agent.ChatContext.ChatItemR\x05items\x1a!\n" + + "\vSendMessage\x12\x12\n" + + "\x04text\x18\x01 \x01(\tR\x04text\x1aP\n" + + "\x13SendMessageResponse\x129\n" + + "\x05items\x18\x01 \x03(\v2#.livekit.agent.ChatContext.ChatItemR\x05itemsB\t\n" + + "\arequest\"\xad\x03\n" + + "\x0fSessionResponse\x12\x1d\n" + + "\n" + + "request_id\x18\x01 \x01(\tR\trequestId\x12\x19\n" + + "\x05error\x18\x02 \x01(\tH\x01R\x05error\x88\x01\x01\x129\n" + + "\x04pong\x18\x03 \x01(\v2#.livekit.agent.SessionResponse.PongH\x00R\x04pong\x12M\n" + + "\tget_state\x18\x04 \x01(\v2..livekit.agent.SessionRequest.GetStateResponseH\x00R\bgetState\x12`\n" + + "\x10get_chat_history\x18\x05 \x01(\v24.livekit.agent.SessionRequest.GetChatHistoryResponseH\x00R\x0egetChatHistory\x12V\n" + + "\fsend_message\x18\x06 \x01(\v21.livekit.agent.SessionRequest.SendMessageResponseH\x00R\vsendMessage\x1a\x06\n" + + "\x04PongB\n" + + "\n" + + "\bresponseB\b\n" + + "\x06_error\"\x1b\n" + + "\x19SessionAudioPlaybackFlush\"\x1b\n" + + "\x19SessionAudioPlaybackClear\"\x1e\n" + + "\x1cSessionAudioPlaybackFinished\"\xfd\x04\n" + + "\x13AgentSessionMessage\x12C\n" + + "\vaudio_input\x18\x01 \x01(\v2 .livekit.agent.SessionAudioFrameH\x00R\n" + + "audioInput\x12E\n" + + "\faudio_output\x18\x02 \x01(\v2 .livekit.agent.SessionAudioFrameH\x00R\vaudioOutput\x123\n" + + "\x05event\x18\x03 \x01(\v2\x1b.livekit.agent.SessionEventH\x00R\x05event\x129\n" + + "\arequest\x18\x04 \x01(\v2\x1d.livekit.agent.SessionRequestH\x00R\arequest\x12<\n" + + "\bresponse\x18\x05 \x01(\v2\x1e.livekit.agent.SessionResponseH\x00R\bresponse\x12\\\n" + + "\x14audio_playback_flush\x18\x06 \x01(\v2(.livekit.agent.SessionAudioPlaybackFlushH\x00R\x12audioPlaybackFlush\x12\\\n" + + "\x14audio_playback_clear\x18\a \x01(\v2(.livekit.agent.SessionAudioPlaybackClearH\x00R\x12audioPlaybackClear\x12e\n" + + "\x17audio_playback_finished\x18\b \x01(\v2+.livekit.agent.SessionAudioPlaybackFinishedH\x00R\x15audioPlaybackFinishedB\t\n" + + "\amessage*>\n" + "\bChatRole\x12\r\n" + "\tDEVELOPER\x10\x00\x12\n" + "\n" + "\x06SYSTEM\x10\x01\x12\b\n" + "\x04USER\x10\x02\x12\r\n" + - "\tASSISTANT\x10\x03B+Z)github.com/livekit/protocol/livekit/agentb\x06proto3" + "\tASSISTANT\x10\x03*\xbe\x01\n" + + "\x11SessionAgentState\x12$\n" + + " SESSION_AGENT_STATE_INITIALIZING\x10\x00\x12\x1c\n" + + "\x18SESSION_AGENT_STATE_IDLE\x10\x01\x12!\n" + + "\x1dSESSION_AGENT_STATE_LISTENING\x10\x02\x12 \n" + + "\x1cSESSION_AGENT_STATE_THINKING\x10\x03\x12 \n" + + "\x1cSESSION_AGENT_STATE_SPEAKING\x10\x04*r\n" + + "\x10SessionUserState\x12\x1f\n" + + "\x1bSESSION_USER_STATE_SPEAKING\x10\x00\x12 \n" + + "\x1cSESSION_USER_STATE_LISTENING\x10\x01\x12\x1b\n" + + "\x17SESSION_USER_STATE_AWAY\x10\x02B+Z)github.com/livekit/protocol/livekit/agentb\x06proto3" var ( file_agent_livekit_agent_session_proto_rawDescOnce sync.Once @@ -899,45 +2480,103 @@ func file_agent_livekit_agent_session_proto_rawDescGZIP() []byte { return file_agent_livekit_agent_session_proto_rawDescData } -var file_agent_livekit_agent_session_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_agent_livekit_agent_session_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_agent_livekit_agent_session_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_agent_livekit_agent_session_proto_msgTypes = make([]protoimpl.MessageInfo, 32) var file_agent_livekit_agent_session_proto_goTypes = []any{ - (ChatRole)(0), // 0: livekit.agent.ChatRole - (*MetricsReport)(nil), // 1: livekit.agent.MetricsReport - (*ChatMessage)(nil), // 2: livekit.agent.ChatMessage - (*FunctionCall)(nil), // 3: livekit.agent.FunctionCall - (*FunctionCallOutput)(nil), // 4: livekit.agent.FunctionCallOutput - (*AgentHandoff)(nil), // 5: livekit.agent.AgentHandoff - (*ChatContext)(nil), // 6: livekit.agent.ChatContext - (*AgentSessionReport)(nil), // 7: livekit.agent.AgentSessionReport - (*ChatMessage_ChatContent)(nil), // 8: livekit.agent.ChatMessage.ChatContent - nil, // 9: livekit.agent.ChatMessage.ExtraEntry - (*ChatContext_ChatItem)(nil), // 10: livekit.agent.ChatContext.ChatItem - (*timestamppb.Timestamp)(nil), // 11: google.protobuf.Timestamp + (ChatRole)(0), // 0: livekit.agent.ChatRole + (SessionAgentState)(0), // 1: livekit.agent.SessionAgentState + (SessionUserState)(0), // 2: livekit.agent.SessionUserState + (*MetricsReport)(nil), // 3: livekit.agent.MetricsReport + (*ChatMessage)(nil), // 4: livekit.agent.ChatMessage + (*FunctionCall)(nil), // 5: livekit.agent.FunctionCall + (*FunctionCallOutput)(nil), // 6: livekit.agent.FunctionCallOutput + (*AgentHandoff)(nil), // 7: livekit.agent.AgentHandoff + (*ChatContext)(nil), // 8: livekit.agent.ChatContext + (*SessionAudioFrame)(nil), // 9: livekit.agent.SessionAudioFrame + (*SessionEvent)(nil), // 10: livekit.agent.SessionEvent + (*SessionRequest)(nil), // 11: livekit.agent.SessionRequest + (*SessionResponse)(nil), // 12: livekit.agent.SessionResponse + (*SessionAudioPlaybackFlush)(nil), // 13: livekit.agent.SessionAudioPlaybackFlush + (*SessionAudioPlaybackClear)(nil), // 14: livekit.agent.SessionAudioPlaybackClear + (*SessionAudioPlaybackFinished)(nil), // 15: livekit.agent.SessionAudioPlaybackFinished + (*AgentSessionMessage)(nil), // 16: livekit.agent.AgentSessionMessage + (*ChatMessage_ChatContent)(nil), // 17: livekit.agent.ChatMessage.ChatContent + nil, // 18: livekit.agent.ChatMessage.ExtraEntry + (*ChatContext_ChatItem)(nil), // 19: livekit.agent.ChatContext.ChatItem + (*SessionEvent_AgentStateChanged)(nil), // 20: livekit.agent.SessionEvent.AgentStateChanged + (*SessionEvent_UserStateChanged)(nil), // 21: livekit.agent.SessionEvent.UserStateChanged + (*SessionEvent_ConversationItemAdded)(nil), // 22: livekit.agent.SessionEvent.ConversationItemAdded + (*SessionEvent_UserInputTranscribed)(nil), // 23: livekit.agent.SessionEvent.UserInputTranscribed + (*SessionEvent_FunctionToolsExecuted)(nil), // 24: livekit.agent.SessionEvent.FunctionToolsExecuted + (*SessionEvent_MetricsCollected)(nil), // 25: livekit.agent.SessionEvent.MetricsCollected + (*SessionEvent_Error)(nil), // 26: livekit.agent.SessionEvent.Error + (*SessionRequest_Ping)(nil), // 27: livekit.agent.SessionRequest.Ping + (*SessionRequest_GetState)(nil), // 28: livekit.agent.SessionRequest.GetState + (*SessionRequest_GetStateResponse)(nil), // 29: livekit.agent.SessionRequest.GetStateResponse + (*SessionRequest_GetChatHistory)(nil), // 30: livekit.agent.SessionRequest.GetChatHistory + (*SessionRequest_GetChatHistoryResponse)(nil), // 31: livekit.agent.SessionRequest.GetChatHistoryResponse + (*SessionRequest_SendMessage)(nil), // 32: livekit.agent.SessionRequest.SendMessage + (*SessionRequest_SendMessageResponse)(nil), // 33: livekit.agent.SessionRequest.SendMessageResponse + (*SessionResponse_Pong)(nil), // 34: livekit.agent.SessionResponse.Pong + (*timestamppb.Timestamp)(nil), // 35: google.protobuf.Timestamp } var file_agent_livekit_agent_session_proto_depIdxs = []int32{ - 11, // 0: livekit.agent.MetricsReport.started_speaking_at:type_name -> google.protobuf.Timestamp - 11, // 1: livekit.agent.MetricsReport.stopped_speaking_at:type_name -> google.protobuf.Timestamp + 35, // 0: livekit.agent.MetricsReport.started_speaking_at:type_name -> google.protobuf.Timestamp + 35, // 1: livekit.agent.MetricsReport.stopped_speaking_at:type_name -> google.protobuf.Timestamp 0, // 2: livekit.agent.ChatMessage.role:type_name -> livekit.agent.ChatRole - 8, // 3: livekit.agent.ChatMessage.content:type_name -> livekit.agent.ChatMessage.ChatContent - 9, // 4: livekit.agent.ChatMessage.extra:type_name -> livekit.agent.ChatMessage.ExtraEntry - 1, // 5: livekit.agent.ChatMessage.metrics:type_name -> livekit.agent.MetricsReport - 11, // 6: livekit.agent.ChatMessage.created_at:type_name -> google.protobuf.Timestamp - 11, // 7: livekit.agent.FunctionCall.created_at:type_name -> google.protobuf.Timestamp - 11, // 8: livekit.agent.FunctionCallOutput.created_at:type_name -> google.protobuf.Timestamp - 11, // 9: livekit.agent.AgentHandoff.created_at:type_name -> google.protobuf.Timestamp - 10, // 10: livekit.agent.ChatContext.items:type_name -> livekit.agent.ChatContext.ChatItem - 6, // 11: livekit.agent.AgentSessionReport.chat_history:type_name -> livekit.agent.ChatContext - 11, // 12: livekit.agent.AgentSessionReport.created_at:type_name -> google.protobuf.Timestamp - 2, // 13: livekit.agent.ChatContext.ChatItem.message:type_name -> livekit.agent.ChatMessage - 3, // 14: livekit.agent.ChatContext.ChatItem.function_call:type_name -> livekit.agent.FunctionCall - 4, // 15: livekit.agent.ChatContext.ChatItem.function_call_output:type_name -> livekit.agent.FunctionCallOutput - 5, // 16: livekit.agent.ChatContext.ChatItem.agent_handoff:type_name -> livekit.agent.AgentHandoff - 17, // [17:17] is the sub-list for method output_type - 17, // [17:17] is the sub-list for method input_type - 17, // [17:17] is the sub-list for extension type_name - 17, // [17:17] is the sub-list for extension extendee - 0, // [0:17] is the sub-list for field type_name + 17, // 3: livekit.agent.ChatMessage.content:type_name -> livekit.agent.ChatMessage.ChatContent + 18, // 4: livekit.agent.ChatMessage.extra:type_name -> livekit.agent.ChatMessage.ExtraEntry + 3, // 5: livekit.agent.ChatMessage.metrics:type_name -> livekit.agent.MetricsReport + 35, // 6: livekit.agent.ChatMessage.created_at:type_name -> google.protobuf.Timestamp + 35, // 7: livekit.agent.FunctionCall.created_at:type_name -> google.protobuf.Timestamp + 35, // 8: livekit.agent.FunctionCallOutput.created_at:type_name -> google.protobuf.Timestamp + 35, // 9: livekit.agent.AgentHandoff.created_at:type_name -> google.protobuf.Timestamp + 19, // 10: livekit.agent.ChatContext.items:type_name -> livekit.agent.ChatContext.ChatItem + 35, // 11: livekit.agent.SessionEvent.created_at:type_name -> google.protobuf.Timestamp + 20, // 12: livekit.agent.SessionEvent.agent_state_changed:type_name -> livekit.agent.SessionEvent.AgentStateChanged + 21, // 13: livekit.agent.SessionEvent.user_state_changed:type_name -> livekit.agent.SessionEvent.UserStateChanged + 22, // 14: livekit.agent.SessionEvent.conversation_item_added:type_name -> livekit.agent.SessionEvent.ConversationItemAdded + 23, // 15: livekit.agent.SessionEvent.user_input_transcribed:type_name -> livekit.agent.SessionEvent.UserInputTranscribed + 24, // 16: livekit.agent.SessionEvent.function_tools_executed:type_name -> livekit.agent.SessionEvent.FunctionToolsExecuted + 25, // 17: livekit.agent.SessionEvent.metrics_collected:type_name -> livekit.agent.SessionEvent.MetricsCollected + 26, // 18: livekit.agent.SessionEvent.error:type_name -> livekit.agent.SessionEvent.Error + 27, // 19: livekit.agent.SessionRequest.ping:type_name -> livekit.agent.SessionRequest.Ping + 28, // 20: livekit.agent.SessionRequest.get_state:type_name -> livekit.agent.SessionRequest.GetState + 30, // 21: livekit.agent.SessionRequest.get_chat_history:type_name -> livekit.agent.SessionRequest.GetChatHistory + 32, // 22: livekit.agent.SessionRequest.send_message:type_name -> livekit.agent.SessionRequest.SendMessage + 34, // 23: livekit.agent.SessionResponse.pong:type_name -> livekit.agent.SessionResponse.Pong + 29, // 24: livekit.agent.SessionResponse.get_state:type_name -> livekit.agent.SessionRequest.GetStateResponse + 31, // 25: livekit.agent.SessionResponse.get_chat_history:type_name -> livekit.agent.SessionRequest.GetChatHistoryResponse + 33, // 26: livekit.agent.SessionResponse.send_message:type_name -> livekit.agent.SessionRequest.SendMessageResponse + 9, // 27: livekit.agent.AgentSessionMessage.audio_input:type_name -> livekit.agent.SessionAudioFrame + 9, // 28: livekit.agent.AgentSessionMessage.audio_output:type_name -> livekit.agent.SessionAudioFrame + 10, // 29: livekit.agent.AgentSessionMessage.event:type_name -> livekit.agent.SessionEvent + 11, // 30: livekit.agent.AgentSessionMessage.request:type_name -> livekit.agent.SessionRequest + 12, // 31: livekit.agent.AgentSessionMessage.response:type_name -> livekit.agent.SessionResponse + 13, // 32: livekit.agent.AgentSessionMessage.audio_playback_flush:type_name -> livekit.agent.SessionAudioPlaybackFlush + 14, // 33: livekit.agent.AgentSessionMessage.audio_playback_clear:type_name -> livekit.agent.SessionAudioPlaybackClear + 15, // 34: livekit.agent.AgentSessionMessage.audio_playback_finished:type_name -> livekit.agent.SessionAudioPlaybackFinished + 4, // 35: livekit.agent.ChatContext.ChatItem.message:type_name -> livekit.agent.ChatMessage + 5, // 36: livekit.agent.ChatContext.ChatItem.function_call:type_name -> livekit.agent.FunctionCall + 6, // 37: livekit.agent.ChatContext.ChatItem.function_call_output:type_name -> livekit.agent.FunctionCallOutput + 7, // 38: livekit.agent.ChatContext.ChatItem.agent_handoff:type_name -> livekit.agent.AgentHandoff + 1, // 39: livekit.agent.SessionEvent.AgentStateChanged.old_state:type_name -> livekit.agent.SessionAgentState + 1, // 40: livekit.agent.SessionEvent.AgentStateChanged.new_state:type_name -> livekit.agent.SessionAgentState + 2, // 41: livekit.agent.SessionEvent.UserStateChanged.old_state:type_name -> livekit.agent.SessionUserState + 2, // 42: livekit.agent.SessionEvent.UserStateChanged.new_state:type_name -> livekit.agent.SessionUserState + 19, // 43: livekit.agent.SessionEvent.ConversationItemAdded.item:type_name -> livekit.agent.ChatContext.ChatItem + 5, // 44: livekit.agent.SessionEvent.FunctionToolsExecuted.function_calls:type_name -> livekit.agent.FunctionCall + 6, // 45: livekit.agent.SessionEvent.FunctionToolsExecuted.function_call_outputs:type_name -> livekit.agent.FunctionCallOutput + 3, // 46: livekit.agent.SessionEvent.MetricsCollected.metrics:type_name -> livekit.agent.MetricsReport + 1, // 47: livekit.agent.SessionRequest.GetStateResponse.agent_state:type_name -> livekit.agent.SessionAgentState + 2, // 48: livekit.agent.SessionRequest.GetStateResponse.user_state:type_name -> livekit.agent.SessionUserState + 19, // 49: livekit.agent.SessionRequest.GetChatHistoryResponse.items:type_name -> livekit.agent.ChatContext.ChatItem + 19, // 50: livekit.agent.SessionRequest.SendMessageResponse.items:type_name -> livekit.agent.ChatContext.ChatItem + 51, // [51:51] is the sub-list for method output_type + 51, // [51:51] is the sub-list for method input_type + 51, // [51:51] is the sub-list for extension type_name + 51, // [51:51] is the sub-list for extension extendee + 0, // [0:51] is the sub-list for field type_name } func init() { file_agent_livekit_agent_session_proto_init() } @@ -949,21 +2588,53 @@ func file_agent_livekit_agent_session_proto_init() { file_agent_livekit_agent_session_proto_msgTypes[1].OneofWrappers = []any{} file_agent_livekit_agent_session_proto_msgTypes[4].OneofWrappers = []any{} file_agent_livekit_agent_session_proto_msgTypes[7].OneofWrappers = []any{ - (*ChatMessage_ChatContent_Text)(nil), + (*SessionEvent_AgentStateChanged_)(nil), + (*SessionEvent_UserStateChanged_)(nil), + (*SessionEvent_ConversationItemAdded_)(nil), + (*SessionEvent_UserInputTranscribed_)(nil), + (*SessionEvent_FunctionToolsExecuted_)(nil), + (*SessionEvent_MetricsCollected_)(nil), + (*SessionEvent_Error_)(nil), + } + file_agent_livekit_agent_session_proto_msgTypes[8].OneofWrappers = []any{ + (*SessionRequest_Ping_)(nil), + (*SessionRequest_GetState_)(nil), + (*SessionRequest_GetChatHistory_)(nil), + (*SessionRequest_SendMessage_)(nil), } file_agent_livekit_agent_session_proto_msgTypes[9].OneofWrappers = []any{ + (*SessionResponse_Pong_)(nil), + (*SessionResponse_GetState)(nil), + (*SessionResponse_GetChatHistory)(nil), + (*SessionResponse_SendMessage)(nil), + } + file_agent_livekit_agent_session_proto_msgTypes[13].OneofWrappers = []any{ + (*AgentSessionMessage_AudioInput)(nil), + (*AgentSessionMessage_AudioOutput)(nil), + (*AgentSessionMessage_Event)(nil), + (*AgentSessionMessage_Request)(nil), + (*AgentSessionMessage_Response)(nil), + (*AgentSessionMessage_AudioPlaybackFlush)(nil), + (*AgentSessionMessage_AudioPlaybackClear)(nil), + (*AgentSessionMessage_AudioPlaybackFinished)(nil), + } + file_agent_livekit_agent_session_proto_msgTypes[14].OneofWrappers = []any{ + (*ChatMessage_ChatContent_Text)(nil), + } + file_agent_livekit_agent_session_proto_msgTypes[16].OneofWrappers = []any{ (*ChatContext_ChatItem_Message)(nil), (*ChatContext_ChatItem_FunctionCall)(nil), (*ChatContext_ChatItem_FunctionCallOutput)(nil), (*ChatContext_ChatItem_AgentHandoff)(nil), } + file_agent_livekit_agent_session_proto_msgTypes[20].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_agent_livekit_agent_session_proto_rawDesc), len(file_agent_livekit_agent_session_proto_rawDesc)), - NumEnums: 1, - NumMessages: 10, + NumEnums: 3, + NumMessages: 32, NumExtensions: 0, NumServices: 0, }, diff --git a/livekit/livekit_agent.pb.go b/livekit/livekit_agent.pb.go index 0bd6da55b..0e4ebea88 100644 --- a/livekit/livekit_agent.pb.go +++ b/livekit/livekit_agent.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: livekit_agent.proto diff --git a/livekit/livekit_agent_dispatch.pb.go b/livekit/livekit_agent_dispatch.pb.go index 3898db5c8..d9335f651 100644 --- a/livekit/livekit_agent_dispatch.pb.go +++ b/livekit/livekit_agent_dispatch.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: livekit_agent_dispatch.proto diff --git a/livekit/livekit_analytics.pb.go b/livekit/livekit_analytics.pb.go index e1f6b9e4d..95766e6ea 100644 --- a/livekit/livekit_analytics.pb.go +++ b/livekit/livekit_analytics.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: livekit_analytics.proto diff --git a/livekit/livekit_cloud_agent.pb.go b/livekit/livekit_cloud_agent.pb.go index f20a38d99..2634e27e8 100644 --- a/livekit/livekit_cloud_agent.pb.go +++ b/livekit/livekit_cloud_agent.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: livekit_cloud_agent.proto diff --git a/livekit/livekit_egress.pb.go b/livekit/livekit_egress.pb.go index 887a86472..6c707a650 100644 --- a/livekit/livekit_egress.pb.go +++ b/livekit/livekit_egress.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: livekit_egress.proto diff --git a/livekit/livekit_ingress.pb.go b/livekit/livekit_ingress.pb.go index 1d28712a1..bc0cdceb5 100644 --- a/livekit/livekit_ingress.pb.go +++ b/livekit/livekit_ingress.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: livekit_ingress.proto diff --git a/livekit/livekit_internal.pb.go b/livekit/livekit_internal.pb.go index 68d01ef24..57f865c2a 100644 --- a/livekit/livekit_internal.pb.go +++ b/livekit/livekit_internal.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: livekit_internal.proto diff --git a/livekit/livekit_metrics.pb.go b/livekit/livekit_metrics.pb.go index 49d086e38..e3dd1e12b 100644 --- a/livekit/livekit_metrics.pb.go +++ b/livekit/livekit_metrics.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: livekit_metrics.proto diff --git a/livekit/livekit_models.pb.go b/livekit/livekit_models.pb.go index 4fe1fefb8..3aebb2f7a 100644 --- a/livekit/livekit_models.pb.go +++ b/livekit/livekit_models.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: livekit_models.proto diff --git a/livekit/livekit_phone_number.pb.go b/livekit/livekit_phone_number.pb.go index 64409feb1..c4eb26abc 100644 --- a/livekit/livekit_phone_number.pb.go +++ b/livekit/livekit_phone_number.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: livekit_phone_number.proto diff --git a/livekit/livekit_room.pb.go b/livekit/livekit_room.pb.go index 758c4a7c1..51e9edba2 100644 --- a/livekit/livekit_room.pb.go +++ b/livekit/livekit_room.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: livekit_room.proto diff --git a/livekit/livekit_rtc.pb.go b/livekit/livekit_rtc.pb.go index c0fe1d4f9..4b360a038 100644 --- a/livekit/livekit_rtc.pb.go +++ b/livekit/livekit_rtc.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: livekit_rtc.proto diff --git a/livekit/livekit_sip.pb.go b/livekit/livekit_sip.pb.go index 74116240d..1aec79a96 100644 --- a/livekit/livekit_sip.pb.go +++ b/livekit/livekit_sip.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: livekit_sip.proto diff --git a/livekit/livekit_token_source.pb.go b/livekit/livekit_token_source.pb.go index 0b1b361bd..4952c9ec7 100644 --- a/livekit/livekit_token_source.pb.go +++ b/livekit/livekit_token_source.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: livekit_token_source.proto diff --git a/livekit/livekit_webhook.pb.go b/livekit/livekit_webhook.pb.go index 66aede854..09594da82 100644 --- a/livekit/livekit_webhook.pb.go +++ b/livekit/livekit_webhook.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: livekit_webhook.proto diff --git a/replay/cloud_replay.pb.go b/replay/cloud_replay.pb.go index d4deb0455..9fa9a7c09 100644 --- a/replay/cloud_replay.pb.go +++ b/replay/cloud_replay.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: cloud_replay.proto diff --git a/rpc/agent.pb.go b/rpc/agent.pb.go index a1691a638..268f7d8be 100644 --- a/rpc/agent.pb.go +++ b/rpc/agent.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: rpc/agent.proto diff --git a/rpc/agent_dispatch.pb.go b/rpc/agent_dispatch.pb.go index 5c656491f..85a469027 100644 --- a/rpc/agent_dispatch.pb.go +++ b/rpc/agent_dispatch.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: rpc/agent_dispatch.proto diff --git a/rpc/analytics.pb.go b/rpc/analytics.pb.go index 0f17a2580..0e3352e2a 100644 --- a/rpc/analytics.pb.go +++ b/rpc/analytics.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: rpc/analytics.proto diff --git a/rpc/analytics_grpc.pb.go b/rpc/analytics_grpc.pb.go index 6217bb431..5c8c48002 100644 --- a/rpc/analytics_grpc.pb.go +++ b/rpc/analytics_grpc.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.5.1 +// - protoc-gen-go-grpc v1.6.1 // - protoc v4.23.4 // source: rpc/analytics.proto @@ -114,13 +114,13 @@ type AnalyticsRecorderServiceServer interface { type UnimplementedAnalyticsRecorderServiceServer struct{} func (UnimplementedAnalyticsRecorderServiceServer) IngestStats(grpc.ClientStreamingServer[livekit.AnalyticsStats, emptypb.Empty]) error { - return status.Errorf(codes.Unimplemented, "method IngestStats not implemented") + return status.Error(codes.Unimplemented, "method IngestStats not implemented") } func (UnimplementedAnalyticsRecorderServiceServer) IngestEvents(grpc.ClientStreamingServer[livekit.AnalyticsEvents, emptypb.Empty]) error { - return status.Errorf(codes.Unimplemented, "method IngestEvents not implemented") + return status.Error(codes.Unimplemented, "method IngestEvents not implemented") } func (UnimplementedAnalyticsRecorderServiceServer) IngestNodeRoomStates(grpc.ClientStreamingServer[livekit.AnalyticsNodeRooms, emptypb.Empty]) error { - return status.Errorf(codes.Unimplemented, "method IngestNodeRoomStates not implemented") + return status.Error(codes.Unimplemented, "method IngestNodeRoomStates not implemented") } func (UnimplementedAnalyticsRecorderServiceServer) mustEmbedUnimplementedAnalyticsRecorderServiceServer() { } @@ -134,7 +134,7 @@ type UnsafeAnalyticsRecorderServiceServer interface { } func RegisterAnalyticsRecorderServiceServer(s grpc.ServiceRegistrar, srv AnalyticsRecorderServiceServer) { - // If the following call pancis, it indicates UnimplementedAnalyticsRecorderServiceServer was + // If the following call panics, it indicates UnimplementedAnalyticsRecorderServiceServer was // embedded by pointer and is nil. This will cause panics if an // unimplemented method is ever invoked, so we test this at initialization // time to prevent it from happening at runtime later due to I/O. diff --git a/rpc/egress.pb.go b/rpc/egress.pb.go index 10517255b..a0d426300 100644 --- a/rpc/egress.pb.go +++ b/rpc/egress.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: rpc/egress.proto diff --git a/rpc/ingress.pb.go b/rpc/ingress.pb.go index 4abd48c4b..697a03b30 100644 --- a/rpc/ingress.pb.go +++ b/rpc/ingress.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: rpc/ingress.proto diff --git a/rpc/io.pb.go b/rpc/io.pb.go index 4d285bb23..13df6422e 100644 --- a/rpc/io.pb.go +++ b/rpc/io.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: rpc/io.proto diff --git a/rpc/keepalive.pb.go b/rpc/keepalive.pb.go index 2deaef554..1890702a2 100644 --- a/rpc/keepalive.pb.go +++ b/rpc/keepalive.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: rpc/keepalive.proto diff --git a/rpc/participant.pb.go b/rpc/participant.pb.go index ac2c8b24a..cffcbb5eb 100644 --- a/rpc/participant.pb.go +++ b/rpc/participant.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: rpc/participant.proto diff --git a/rpc/room.pb.go b/rpc/room.pb.go index 9290f4e2e..1e02bf689 100644 --- a/rpc/room.pb.go +++ b/rpc/room.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: rpc/room.proto diff --git a/rpc/roommanager.pb.go b/rpc/roommanager.pb.go index 5efc0f065..54861c5a4 100644 --- a/rpc/roommanager.pb.go +++ b/rpc/roommanager.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: rpc/roommanager.proto diff --git a/rpc/signal.pb.go b/rpc/signal.pb.go index e2ceb6d95..b9477d103 100644 --- a/rpc/signal.pb.go +++ b/rpc/signal.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: rpc/signal.proto diff --git a/rpc/sip.pb.go b/rpc/sip.pb.go index 5d169ffe0..e9d1ee22a 100644 --- a/rpc/sip.pb.go +++ b/rpc/sip.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: rpc/sip.proto diff --git a/rpc/whip_signal.pb.go b/rpc/whip_signal.pb.go index 8a41d3b89..410274e22 100644 --- a/rpc/whip_signal.pb.go +++ b/rpc/whip_signal.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v4.23.4 // source: rpc/whip_signal.proto