Versions in this module Expand all Collapse all v0 v0.1.0 Aug 30, 2026 Changes in this version + const AUDIO_ONLY + const AttributeAgentName + const AttributeRedactionEnabled + const AttributeSimulationEnabled + const AttributeSimulationJobID + const AttributeSimulationRunID + const AttributeSimulator + const AttributeSimulatorDispatch + const AttributeTranscriptionExpression + const CPUCountEnvironment + const DefaultAssignmentTimeout + const DefaultAudioEnergyThreshold + const DefaultCGroupV1CPUCount + const DefaultCPUSampleInterval + const DefaultDrainTimeout + const DefaultInferenceInitializeTimeout + const DefaultInitializeTimeout + const DefaultJobMemoryWarnMB + const DefaultMaxReconnects + const DefaultShutdownProcessTimeout + const DefaultStatusUpdateInterval + const DefaultWorkerPort + const FFmpegPathEnv + const FFmpegPathEnvironment + const LogFormatJSON + const LogFormatText + const LogLevelSilent + const LogLevelTrace + const SIMULATION_MODE_AUDIO + const SIMULATION_MODE_TEXT + const SIMULATION_MODE_UNSPECIFIED + const SUBSCRIBE_ALL + const SUBSCRIBE_NONE + const ServerTypePublisher + const ServerTypeRoom + const SimulationModeAudio + const SimulationModeText + const SimulationModeUnspecified + const SubscribeAll + const SubscribeAudioOnly + const SubscribeNone + const SubscribeVideoOnly + const UserdataTTSStartedTime + const UserdataTimedTranscript + const VIDEO_ONLY + var DefaultAPIConnectOptions = APIConnectOptions + var DefaultSessionConnectOptions = SessionConnectOptions + var ErrCPUUsageUnavailable = errors.New("CPU usage is unavailable") + var ErrExecutorClosed = errors.New("agents: job executor is closed") + var ErrFunctionExists = errors.New("agents: function has already been registered") + var ErrIncompletePCMFrame = errors.New("incomplete PCM16 frame") + var ErrInferenceConcurrencyLimit = errors.New("agents: inference concurrency limit reached") + var ErrInferenceExecutorClosed = errors.New("agents: inference executor is closed") + var ErrInferenceProcessCrashed = errors.New("agents: inference process crashed") + var ErrInferenceProcessUnavailable = errors.New("agents: inference process is unavailable") + var ErrInferenceRegistrationMismatch = errors.New("agents: inference runner registrations differ in child process") + var ErrInferenceRunnerExists = errors.New("agents: inference runner is already registered") + var ErrInferenceRunnerUnknown = errors.New("agents: inference runner is not registered") + var ErrInvalidAudioFormat = errors.New("invalid audio format") + var ErrJobNotFound = errors.New("agents: job was not found") + var ErrJobRequestAnswered = errors.New("agents: job request has already been answered") + var ErrJobSessionFinishing = errors.New("agents: job session lifecycle is already finishing") + var ErrNoJobCapacity = errors.New("agents: worker has no available job capacity") + var ErrPrimarySessionRecording = errors.New("agents: only the primary session may enable recording") + var ErrRTCBridgeRequired = errors.New(...) + var ErrReservationReleased = errors.New("agents: job reservation was released") + var ErrRoomNotConnected = errors.New("agents: room is not connected") + var ErrSimulatorVerdictUnavailable = errors.New("simulator verdict is only available after the simulation completes") + var KnownLanguageCodes = []LanguageCode + var Version = "v0.1.0" + func AreLanguagesEquivalent(left, right string) bool + func BaseLanguage(language string) string + func CalculateAudioDuration(frames []AudioFrame) time.Duration + func CalculateAudioDurationSeconds(frame AudioFrame) float64 + func ConfigureFFmpeg() string + func Dedent(value string) string + func FFmpegCommand(ctx context.Context, args ...string) *exec.Cmd + func ISOLanguage(language string) string + func InferenceExecutorFromContext(ctx context.Context) (ipc.InferenceExecutor, bool) + func InitializeLogger(options LoggerOptions) (*slog.Logger, error) + func IsAPIError(err error) bool + func IsAgent(value any) bool + func IsCloud(rawURL string) bool + func IsDevMode() bool + func IsHosted() bool + func LanguageName(language string) (string, bool) + func LanguageRegion(language string) (string, bool) + func Log() *slog.Logger + func MustRegisterInferenceRunner(method string, factory InferenceRunnerFactory) + func OnPluginRegistered(fn func(PluginRegisteredEvent)) func() + func ParseLogLevel(value string) (slog.Level, error) + func PutResource[T any](bag *ResourceBag, key string, value T) error + func RegisterInferenceRunner(method string, factory InferenceRunnerFactory) error + func RegisterPlugin(plugin Plugin) error + func RegisteredInferenceRunners() map[string]InferenceRunnerFactory + func ResolveFFmpegPath() string + func Resource[T any](bag *ResourceBag, key string) (T, bool) + func RunConsoleJob[UserData any](ctx context.Context, options ConsoleJobOptions[UserData]) (resultErr error) + func Run[T any](ctx context.Context, options WorkerOptions[T]) error + func SetLogger(logger *slog.Logger) error + func ShortUUID(prefix string) string + func WaitForParticipantAttribute(ctx context.Context, room *lksdk.Room, bridge *rtcbridge.RTCBridge, ...) error + func WaitForTrackPublication(ctx context.Context, room *lksdk.Room, bridge *rtcbridge.RTCBridge, ...) (lksdk.TrackPublication, error) + func WithConnectionResult[T comparable, R any](ctx context.Context, pool *ConnectionPool[T], ...) (R, error) + func WithInferenceExecutor(ctx context.Context, executor ipc.InferenceExecutor) context.Context + type APIConnectOptions struct + MaxRetries int + RetryInterval time.Duration + Timeout time.Duration + func (o APIConnectOptions) Resolve() APIConnectOptions + func (o APIConnectOptions) RetryDelay(n int) time.Duration + type APIConnectionError struct + func NewAPIConnectionError(message string, retryable bool, cause error) *APIConnectionError + func (e *APIConnectionError) Unwrap() error + type APIError struct + Body any + Cause error + Message string + RetryableFlag bool + func NewAPIError(message string, body any, retryable bool, cause error) *APIError + func (e *APIError) Error() string + func (e *APIError) Retryable() bool + func (e *APIError) Unwrap() error + type APIStatusError struct + RequestID string + StatusCode int + func NewAPIStatusError(message string, statusCode int, requestID string, body any, retryable bool, ...) *APIStatusError + func (e *APIStatusError) Error() string + func (e *APIStatusError) Unwrap() error + type APITimeoutError struct + func NewAPITimeoutError(message string, retryable bool, cause error) *APITimeoutError + func (e *APITimeoutError) Unwrap() error + type AgentDefinition struct + func DefineAgent[T any](options AgentDefinitionOptions[T]) (*AgentDefinition[T], error) + func MustDefineAgent[T any](options AgentDefinitionOptions[T]) *AgentDefinition[T] + func (d *AgentDefinition[T]) Entrypoint() JobEntrypoint[T] + func (d *AgentDefinition[T]) Prewarm() PrewarmFunc[T] + func (d *AgentDefinition[T]) SimulationEnd() SimulationEndFunc[T] + type AgentDefinitionOptions struct + Entrypoint JobEntrypoint[T] + OnSimulationEnd SimulationEndFunc[T] + Prewarm PrewarmFunc[T] + type AgentServer struct + func NewAgentServer[T any](options ServerOptions[T]) (*AgentServer[T], error) + func (s *AgentServer[T]) ActiveJobs() []RunningJobInfo + func (s *AgentServer[T]) Close(contexts ...context.Context) error + func (s *AgentServer[T]) Drain(ctx context.Context) error + func (s *AgentServer[T]) Draining() bool + func (s *AgentServer[T]) Events() *EventEmitter[WorkerEvent] + func (s *AgentServer[T]) HTTPAddress() string + func (s *AgentServer[T]) ID() string + func (s *AgentServer[T]) RegisterAgent(name string, entrypoint JobEntrypoint[T]) error + func (s *AgentServer[T]) RegisterRTCSession(name string, entrypoint JobEntrypoint[T]) error + func (s *AgentServer[T]) Registered() bool + func (s *AgentServer[T]) Run(ctx context.Context) error + func (s *AgentServer[T]) SimulateJob(ctx context.Context, roomName, participantIdentity string) error + type AssignmentTimeoutError struct + Message string + func (e *AssignmentTimeoutError) Error() string + type AudioByteStream struct + func NewAudioByteStream(sampleRate, channels, samplesPerChannel int) (*AudioByteStream, error) + func (s *AudioByteStream) Flush() ([]AudioFrame, error) + func (s *AudioByteStream) Reset() + func (s *AudioByteStream) Write(data []byte) []AudioFrame + type AudioDecodeError struct + Cause error + Codec string + Path string + Stderr string + func (e *AudioDecodeError) Error() string + func (e *AudioDecodeError) Unwrap() error + type AudioDecodeOptions struct + Channels int + FFmpegPath string + Format string + FrameDuration time.Duration + NumChannels int + SampleRate int + StreamCapacity int + type AudioEnergyFilter struct + Cooldown time.Duration + Threshold float64 + func NewAudioEnergyFilter(cooldown time.Duration) *AudioEnergyFilter + func (f *AudioEnergyFilter) PushFrame(frame AudioFrame) bool + func (f *AudioEnergyFilter) Reset() + type AudioFrame struct + Channels int + Data []int16 + SampleRate int + SamplesPerChannel int + UserData map[string]any + func MergeFrames(frames []AudioFrame) (AudioFrame, error) + func NewAudioFrame(data []int16, sampleRate, channels int) (AudioFrame, error) + func (f AudioFrame) Duration() time.Duration + type AudioFrameStream interface + Close func() error + Wait func(context.Context) error + func AudioFramesFromFile(ctx context.Context, path string, options AudioDecodeOptions) (AudioFrameStream, error) + func LoopAudioFramesFromFile(ctx context.Context, path string, options AudioDecodeOptions) (AudioFrameStream, error) + type AutoSubscribe uint8 + type CGroupV1CPUMonitor struct + func NewCGroupV1CPUMonitor(root string) *CGroupV1CPUMonitor + func (m *CGroupV1CPUMonitor) CPUCount() float64 + func (m *CGroupV1CPUMonitor) CPUPercent(ctx context.Context, interval time.Duration) (float64, error) + type CGroupV2CPUMonitor struct + func NewCGroupV2CPUMonitor(root string) *CGroupV2CPUMonitor + func (m *CGroupV2CPUMonitor) CPUCount() float64 + func (m *CGroupV2CPUMonitor) CPUPercent(ctx context.Context, interval time.Duration) (float64, error) + type CPUMonitor interface + CPUCount func() float64 + CPUPercent func(context.Context, time.Duration) (float64, error) + func GetCPUMonitor() CPUMonitor + type ConnectOptions struct + AutoSubscribe AutoSubscribe + RoomOptions []lksdk.ConnectOption + type ConnectionPool struct + func NewConnectionPool[T comparable](options ConnectionPoolOptions[T]) (*ConnectionPool[T], error) + func (p *ConnectionPool[T]) Close(ctx context.Context) error + func (p *ConnectionPool[T]) Get(ctx context.Context) (T, error) + func (p *ConnectionPool[T]) Invalidate() + func (p *ConnectionPool[T]) Len() int + func (p *ConnectionPool[T]) Prewarm(ctx context.Context) + func (p *ConnectionPool[T]) Put(conn T) bool + func (p *ConnectionPool[T]) Remove(ctx context.Context, conn T) error + func (p *ConnectionPool[T]) WithConnection(ctx context.Context, fn func(context.Context, T) error) error + type ConnectionPoolOptions struct + Close func(context.Context, T) error + Connect func(context.Context) (T, error) + ConnectTimeout time.Duration + MarkRefreshedOnGet bool + MaxSessionDuration time.Duration + type ConsoleJobOptions struct + Record bool + Server ServerOptions[UserData] + SessionDirectory string + Setup func(context.Context, *JobContext[UserData], SimulationEndFunc[UserData]) error + ShutdownTimeout time.Duration + type Entrypoint = JobEntrypoint[T] + type EventEmitter struct + func (e *EventEmitter[T]) Emit(event T) + func (e *EventEmitter[T]) Len() int + func (e *EventEmitter[T]) Subscribe(fn func(T)) (unsubscribe func()) + type ExecutorMode uint8 + const ExecutorModeInProcess + const ExecutorModeProcess + type ExpFilter struct + func NewExpFilter(options ExpFilterOptions) (*ExpFilter, error) + func (f *ExpFilter) Apply(exponent, sample float64) float64 + func (f *ExpFilter) Reset(initial *float64) + func (f *ExpFilter) SetAlpha(alpha float64) error + func (f *ExpFilter) Value() (float64, bool) + type ExpFilterOptions struct + Alpha float64 + Initial *float64 + Max *float64 + Min *float64 + type FlushSentinel struct + type FunctionExistsError struct + Message string + func (e *FunctionExistsError) Error() string + func (e *FunctionExistsError) Unwrap() error + type IdleTimeoutError struct + Message string + func (e *IdleTimeoutError) Error() string + type InferenceProcessError struct + Code string + Message string + func (e *InferenceProcessError) Error() string + func (e *InferenceProcessError) Is(target error) bool + type InferenceRunner interface + Close func(context.Context) error + Initialize func(context.Context) error + Run func(context.Context, any) (any, error) + func NewInferenceRunner(method string) (InferenceRunner, error) + type InferenceRunnerFactory func() (InferenceRunner, error) + type InferenceRunnerFuncs struct + CloseFunc func(context.Context) error + InitializeFunc func(context.Context) error + RunFunc func(context.Context, any) (any, error) + func (r InferenceRunnerFuncs) Close(ctx context.Context) error + func (r InferenceRunnerFuncs) Initialize(ctx context.Context) error + func (r InferenceRunnerFuncs) Run(ctx context.Context, input any) (any, error) + type JobAcceptArguments = JobAcceptOptions + type JobAcceptOptions struct + Attributes map[string]string + Identity string + Metadata string + Name string + type JobContext struct + func JobFromContext[T any](ctx context.Context) (*JobContext[T], bool) + func (j *JobContext[T]) AddParticipantEntrypoint(callback ParticipantEntrypoint[T]) error + func (j *JobContext[T]) AddShutdownCallback(callback ShutdownCallback) error + func (j *JobContext[T]) Agent() *lksdk.LocalParticipant + func (j *JobContext[T]) Connect(ctx context.Context, opts ConnectOptions) error + func (j *JobContext[T]) Context() context.Context + func (j *JobContext[T]) DeleteRoom(ctx context.Context, name string) error + func (j *JobContext[T]) Done() <-chan struct{} + func (j *JobContext[T]) InferenceExecutor() ipc.InferenceExecutor + func (j *JobContext[T]) Info() RunningJobInfo + func (j *JobContext[T]) IsConnected() bool + func (j *JobContext[T]) IsFakeJob() bool + func (j *JobContext[T]) Job() *livekit.Job + func (j *JobContext[T]) Process() *JobProcess[T] + func (j *JobContext[T]) RTCBridge() *rtcbridge.RTCBridge + func (j *JobContext[T]) RegisterSession(options JobSessionRegistrationOptions) (*JobSessionRegistration, error) + func (j *JobContext[T]) Room() *lksdk.Room + func (j *JobContext[T]) SessionDirectory() string + func (j *JobContext[T]) Shutdown(reason string) + func (j *JobContext[T]) ShutdownReason() string + func (j *JobContext[T]) SimulationContext() (*SimulationContext[T], bool) + func (j *JobContext[T]) State() *T + func (j *JobContext[T]) WaitForParticipant(ctx context.Context, identity string, kinds ...lksdk.ParticipantKind) (*lksdk.RemoteParticipant, error) + func (j *JobContext[T]) WaitForParticipantAttribute(ctx context.Context, identity, attribute, value string) error + func (j *JobContext[T]) WaitForTrackPublication(ctx context.Context, options WaitForTrackPublicationOptions) (lksdk.TrackPublication, error) + func (j *JobContext[T]) WorkerID() string + type JobEntrypoint func(context.Context, *JobContext[T]) error + type JobProcess struct + func (p *JobProcess[T]) PID() int + func (p *JobProcess[T]) State() *T + func (p *JobProcess[T]) UserData() *T + type JobRejectOptions struct + type JobRequest struct + func (r *JobRequest) Accept(ctx context.Context, opts JobAcceptOptions) error + func (r *JobRequest) AgentName() string + func (r *JobRequest) Answered() bool + func (r *JobRequest) ID() string + func (r *JobRequest) Job() *livekit.Job + func (r *JobRequest) Publisher() *livekit.ParticipantInfo + func (r *JobRequest) Reject(ctx context.Context, opts JobRejectOptions) error + func (r *JobRequest) Resuming() bool + func (r *JobRequest) Room() *livekit.Room + type JobSessionLifecycle interface + CloseSession func(context.Context) error + FinalizeSession func(context.Context) error + type JobSessionLifecycleFuncs struct + Close func(context.Context) error + Finalize func(context.Context) error + func (f JobSessionLifecycleFuncs) CloseSession(ctx context.Context) error + func (f JobSessionLifecycleFuncs) FinalizeSession(ctx context.Context) error + type JobSessionRegistration struct + Primary bool + RecordingEnabled bool + RedactionEnabled bool + func (r *JobSessionRegistration) Release() + type JobSessionRegistrationOptions struct + Lifecycle JobSessionLifecycle + Recording Override[bool] + type LanguageCode string + func AsLanguageCode(language string) LanguageCode + func NormalizeLanguage(language string) LanguageCode + type LoadFunc func(context.Context, *AgentServer[T]) (float64, error) + type LocalInferenceExecutor struct + func NewLocalInferenceExecutor(factories map[string]InferenceRunnerFactory) (*LocalInferenceExecutor, error) + func (e *LocalInferenceExecutor) Close(ctx context.Context) error + func (e *LocalInferenceExecutor) DoInference(ctx context.Context, method string, data any) (result any, err error) + func (e *LocalInferenceExecutor) HasInferenceRunners() bool + func (e *LocalInferenceExecutor) Healthy() error + func (e *LocalInferenceExecutor) Initialize(ctx context.Context) error + type LogFormat string + type LoggerOptions struct + AddSource bool + Format LogFormat + Handler slog.Handler + Level slog.Leveler + ReplaceAttr func([]string, slog.Attr) slog.Attr + SetDefault bool + Writer io.Writer + type MissingCredentialsError struct + Name string + func (e *MissingCredentialsError) Error() string + type Override struct + func Disable[T any]() Override[T] + func Use[T any](value T) Override[T] + func (o Override[T]) IsDisabled() bool + func (o Override[T]) IsInherited() bool + func (o Override[T]) Resolve(inherited T, inheritedEnabled bool) (T, bool) + func (o Override[T]) Value() (T, bool) + type ParticipantEntrypoint func(context.Context, *JobContext[T], *lksdk.RemoteParticipant) error + type ParticipantNotFoundError struct + Identity string + func (e *ParticipantNotFoundError) Error() string + type ParticipantWaitDisconnectedError struct + Attribute string + Identity string + Room bool + func (e *ParticipantWaitDisconnectedError) Error() string + type Plugin interface + DownloadFiles func(context.Context) error + Package func() string + Title func() string + Version func() string + func RegisteredPlugins() []Plugin + type PluginRegisteredEvent struct + Plugin Plugin + type PrewarmFunc func(context.Context, *JobProcess[T]) error + type RequestHandler func(context.Context, *JobRequest) error + type ResolvedLoggerOptions struct + AddSource bool + Format LogFormat + Level slog.Level + SetDefault bool + func CurrentLoggerOptions() (ResolvedLoggerOptions, bool) + type ResourceBag struct + func NewResourceBag() *ResourceBag + func (b *ResourceBag) Delete(key string) + func (b *ResourceBag) Put(key string, value any) error + type RunningJobInfo struct + APIKey SecretString + APISecret SecretString + AcceptArguments JobAcceptOptions + FakeJob bool + Job *livekit.Job + SessionDirectory string + Token SecretString + URL string + WorkerID string + func (i RunningJobInfo) Clone() RunningJobInfo + type RuntimeCPUMonitor struct + func NewRuntimeCPUMonitor() *RuntimeCPUMonitor + func (*RuntimeCPUMonitor) CPUCount() float64 + func (*RuntimeCPUMonitor) CPUPercent(ctx context.Context, interval time.Duration) (float64, error) + type Scenario = livekit.Scenario + type ScenarioGroup = livekit.ScenarioGroup + type ScenarioUserdata map[string]any + type SecretString string + func NewSecretString(value string) SecretString + func (SecretString) GoString() string + func (SecretString) MarshalJSON() ([]byte, error) + func (SecretString) MarshalText() ([]byte, error) + func (SecretString) String() string + func (s SecretString) Reveal() string + type ServerOptions struct + APIKey SecretString + APISecret SecretString + Agent *AgentDefinition[T] + AgentName string + AgentNameIsEnv bool + AssignmentTimeout time.Duration + Deployment string + DrainTimeout time.Duration + Entrypoint JobEntrypoint[T] + ExecutorMode ExecutorMode + Host string + InitializeProcessTimeout time.Duration + JobEntrypoint JobEntrypoint[T] + JobMemoryLimitMB int + JobMemoryWarnMB int + JobMemoryWarnMBSet bool + LoadFunc LoadFunc[T] + LoadThreshold float64 + Logger *slog.Logger + MaxConcurrentJobs int + MaxReconnects int + MaxReconnectsSet bool + NumIdleProcesses int + OnSimulationEnd SimulationEndFunc[T] + Permissions WorkerPermissions + PermissionsSet bool + Port int + Prewarm PrewarmFunc[T] + Production bool + RequestFunc RequestHandler + RequestHandler RequestHandler + ServerType ServerType + ShutdownProcessTimeout time.Duration + Simulation bool + StatusUpdateInterval time.Duration + URL string + WSURL string + WorkerToken SecretString + type ServerType = livekit.JobType + type SessionConnectOptions struct + LLM APIConnectOptions + MaxUnrecoverableErrors int + STT APIConnectOptions + TTS APIConnectOptions + func (o SessionConnectOptions) Resolve() SessionConnectOptions + type ShutdownCallback func(context.Context, string) error + type SimulationContext struct + func NewSimulationContext[T any](dispatch *SimulationDispatch, job *JobContext[T]) (*SimulationContext[T], error) + func (s *SimulationContext[T]) BeginFinalize(verdict SimulationVerdict, run *SimulationRun) + func (s *SimulationContext[T]) Dispatch() *SimulationDispatch + func (s *SimulationContext[T]) EffectiveVerdict() (SimulationVerdict, error) + func (s *SimulationContext[T]) Fail(reason string) + func (s *SimulationContext[T]) JobContext() *JobContext[T] + func (s *SimulationContext[T]) JobID() string + func (s *SimulationContext[T]) Mode() SimulationMode + func (s *SimulationContext[T]) Run() (*SimulationRun, bool) + func (s *SimulationContext[T]) RunID() string + func (s *SimulationContext[T]) Scenario() *Scenario + func (s *SimulationContext[T]) SimulatorVerdict() (SimulationVerdict, error) + func (s *SimulationContext[T]) UserVerdict() (SimulationVerdict, bool) + func (s *SimulationContext[T]) Userdata() (ScenarioUserdata, error) + type SimulationDispatch = livekit.SimulationDispatch + func ParseSimulationDispatch(raw string) (*SimulationDispatch, error) + type SimulationEndFunc func(context.Context, *SimulationContext[T]) error + type SimulationMode = livekit.SimulationMode + type SimulationRun = livekit.SimulationRun + type SimulationRunJob = livekit.SimulationRun_Job + type SimulationVerdict struct + Reason string + Success bool + type TimedString struct + Confidence *float64 + EndTime *time.Duration + SpeakerID *string + StartTime *time.Duration + StartTimeOffset *time.Duration + Text string + func CreateTimedString(options TimedStringOptions) TimedString + func NewTimedString(text string, start, end time.Duration) TimedString + type TimedStringOptions struct + Confidence *float64 + EndTime *time.Duration + SpeakerID *string + StartTime *time.Duration + StartTimeOffset *time.Duration + Text string + type UnexpectedModelBehavior struct + Cause error + Message string + func (e *UnexpectedModelBehavior) Error() string + func (e *UnexpectedModelBehavior) Unwrap() error + type WaitForTrackPublicationOptions struct + EventCapacity int + Identity string + IncludeLocal bool + Kind lksdk.TrackKind + WaitForSubscription bool + type Worker = AgentServer[T] + func NewWorker[T any](options WorkerOptions[T]) (*Worker[T], error) + type WorkerError struct + Cause error + Message string + func (e *WorkerError) Error() string + func (e *WorkerError) Unwrap() error + type WorkerEvent struct + Error error + Message *livekit.WorkerMessage + ServerInfo *livekit.ServerInfo + Type WorkerEventType + WorkerID string + type WorkerEventType string + const WorkerEventClosed + const WorkerEventMessage + const WorkerEventRegistered + type WorkerOptions = ServerOptions[T] + type WorkerPermissions struct + CanManageAgentSession bool + CanPublish bool + CanPublishData bool + CanPublishSources []livekit.TrackSource + CanSubscribe bool + CanSubscribeMetrics bool + CanUpdateMetadata bool + Hidden bool + func DefaultWorkerPermissions() WorkerPermissions