diff --git a/agents/src/cli.ts b/agents/src/cli.ts index c4a17ec1..c0cceb38 100644 --- a/agents/src/cli.ts +++ b/agents/src/cli.ts @@ -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; @@ -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', () => { diff --git a/agents/src/worker.ts b/agents/src/worker.ts index a1a3040a..a3f294db 100644 --- a/agents/src/worker.ts +++ b/agents/src/worker.ts @@ -9,9 +9,9 @@ import type { } from '@livekit/protocol'; import { type AvailabilityRequest, - JobType, ParticipantPermission, ServerMessage, + ServerType, WorkerMessage, WorkerStatus, } from '@livekit/protocol'; @@ -84,7 +84,7 @@ const defaultRequestFunc = async (ctx: JobRequest) => { }; // eslint-disable-next-line @typescript-eslint/no-unused-vars -const defaultCpuLoad = async (worker: Worker): Promise => { +const defaultCpuLoad = async (worker: AgentServer): Promise => { return new Promise((resolve) => { const cpus1 = os.cpus(); @@ -149,14 +149,14 @@ export class WorkerPermissions { export class WorkerOptions { agent: string; requestFunc: (job: JobRequest) => Promise; - loadFunc: (worker: Worker) => Promise; + loadFunc: (worker: AgentServer) => Promise; loadThreshold: number; numIdleProcesses: number; shutdownProcessTimeout: number; initializeProcessTimeout: number; permissions: WorkerPermissions; agentName: string; - workerType: JobType; + serverType: ServerType; maxRetry: number; wsURL: string; apiKey?: string; @@ -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, @@ -200,7 +200,7 @@ export class WorkerOptions { agent: string; requestFunc?: (job: JobRequest) => Promise; /** Called to determine the current load of the worker. Should return a value between 0 and 1. */ - loadFunc?: (worker: Worker) => Promise; + loadFunc?: (worker: AgentServer) => Promise; /** When the load exceeds this threshold, the worker will be marked as unavailable. */ loadThreshold?: number; numIdleProcesses?: number; @@ -208,7 +208,7 @@ export class WorkerOptions { initializeProcessTimeout?: number; permissions?: WorkerPermissions; agentName?: string; - workerType?: JobType; + serverType?: ServerType; maxRetry?: number; wsURL?: string; apiKey?: string; @@ -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; @@ -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; @@ -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, @@ -503,7 +503,7 @@ export class Worker { message: { case: 'simulateJob', value: { - type: JobType.JT_PUBLISHER, + type: ServerType.JT_PUBLISHER, room, participant, }, @@ -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,