Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions agents/src/cli.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import type { EventEmitter } from 'node:events';
import { initializeLogger, log } from './log.js';
import { Plugin } from './plugin.js';
import { version } from './version.js';
import { Worker, WorkerOptions } from './worker.js';
import { AgentServer, WorkerOptions } from './worker.js';

type CliArgs = {
opts: WorkerOptions;
Expand All @@ -23,7 +23,7 @@ const runWorker = async (args: CliArgs) => {

// though `production` is defined in WorkerOptions, it will always be overridden by CLI.
const { production: _, ...opts } = args.opts; // eslint-disable-line @typescript-eslint/no-unused-vars
const worker = new Worker(new WorkerOptions({ production: args.production, ...opts }));
const worker = new AgentServer(new WorkerOptions({ production: args.production, ...opts }));

if (args.room) {
worker.event.once('worker_registered', () => {
Expand Down
24 changes: 12 additions & 12 deletions agents/src/worker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ import type {
} from '@livekit/protocol';
import {
type AvailabilityRequest,
JobType,
ParticipantPermission,
ServerMessage,
ServerType,
WorkerMessage,
WorkerStatus,
} from '@livekit/protocol';
Expand Down Expand Up @@ -84,7 +84,7 @@ const defaultRequestFunc = async (ctx: JobRequest) => {
};

// eslint-disable-next-line @typescript-eslint/no-unused-vars
const defaultCpuLoad = async (worker: Worker): Promise<number> => {
const defaultCpuLoad = async (worker: AgentServer): Promise<number> => {
return new Promise((resolve) => {
const cpus1 = os.cpus();

Expand Down Expand Up @@ -149,14 +149,14 @@ export class WorkerPermissions {
export class WorkerOptions {
agent: string;
requestFunc: (job: JobRequest) => Promise<void>;
loadFunc: (worker: Worker) => Promise<number>;
loadFunc: (worker: AgentServer) => Promise<number>;
loadThreshold: number;
numIdleProcesses: number;
shutdownProcessTimeout: number;
initializeProcessTimeout: number;
permissions: WorkerPermissions;
agentName: string;
workerType: JobType;
serverType: ServerType;
maxRetry: number;
wsURL: string;
apiKey?: string;
Expand All @@ -180,7 +180,7 @@ export class WorkerOptions {
initializeProcessTimeout = 10 * 1000,
permissions = new WorkerPermissions(),
agentName = '',
workerType = JobType.JT_ROOM,
serverType = ServerType.JT_ROOM,
maxRetry = MAX_RECONNECT_ATTEMPTS,
wsURL = 'ws://localhost:7880',
apiKey = undefined,
Expand All @@ -200,15 +200,15 @@ export class WorkerOptions {
agent: string;
requestFunc?: (job: JobRequest) => Promise<void>;
/** Called to determine the current load of the worker. Should return a value between 0 and 1. */
loadFunc?: (worker: Worker) => Promise<number>;
loadFunc?: (worker: AgentServer) => Promise<number>;
/** When the load exceeds this threshold, the worker will be marked as unavailable. */
loadThreshold?: number;
numIdleProcesses?: number;
shutdownProcessTimeout?: number;
initializeProcessTimeout?: number;
permissions?: WorkerPermissions;
agentName?: string;
workerType?: JobType;
serverType?: ServerType;
maxRetry?: number;
wsURL?: string;
apiKey?: string;
Expand All @@ -233,7 +233,7 @@ export class WorkerOptions {
this.initializeProcessTimeout = initializeProcessTimeout;
this.permissions = permissions;
this.agentName = agentName;
this.workerType = workerType;
this.serverType = serverType;
this.maxRetry = maxRetry;
this.wsURL = wsURL;
this.apiKey = apiKey;
Expand Down Expand Up @@ -266,7 +266,7 @@ class PendingAssignment {
* you don't have access to a command line, such as a headless program, or one that uses Agents
* behind a wrapper.
*/
export class Worker {
export class AgentServer {
#opts: WorkerOptions;
#procPool: ProcPool;

Expand Down Expand Up @@ -345,7 +345,7 @@ export class Worker {
this.#opts = opts;
this.#httpServer = new HTTPServer(opts.host, opts.port, () => ({
agent_name: opts.agentName,
worker_type: JobType[opts.workerType],
worker_type: ServerType[opts.serverType],
active_jobs: this.activeJobs.length,
sdk_version: version,
project_type: PROJECT_TYPE,
Expand Down Expand Up @@ -503,7 +503,7 @@ export class Worker {
message: {
case: 'simulateJob',
value: {
type: JobType.JT_PUBLISHER,
type: ServerType.JT_PUBLISHER,
room,
participant,
},
Expand Down Expand Up @@ -615,7 +615,7 @@ export class Worker {
message: {
case: 'register',
value: {
type: this.#opts.workerType,
type: this.#opts.serverType,
agentName: this.#opts.agentName,
allowedPermissions: new ParticipantPermission({
canPublish: this.#opts.permissions.canPublish,
Expand Down
Loading