@livekit/agents 1.1.0-dev.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.cjs +2 -0
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/constants.cjs +3 -0
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +1 -0
- package/dist/constants.d.ts +1 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +2 -0
- package/dist/constants.js.map +1 -1
- package/dist/cpu.cjs +189 -0
- package/dist/cpu.cjs.map +1 -0
- package/dist/cpu.d.cts +24 -0
- package/dist/cpu.d.ts +24 -0
- package/dist/cpu.d.ts.map +1 -0
- package/dist/cpu.js +152 -0
- package/dist/cpu.js.map +1 -0
- package/dist/cpu.test.cjs +227 -0
- package/dist/cpu.test.cjs.map +1 -0
- package/dist/cpu.test.js +204 -0
- package/dist/cpu.test.js.map +1 -0
- package/dist/index.cjs +12 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +13 -13
- package/dist/index.d.ts +13 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -10
- package/dist/index.js.map +1 -1
- package/dist/inference/interruption/defaults.cjs +1 -1
- package/dist/inference/interruption/defaults.cjs.map +1 -1
- package/dist/inference/interruption/defaults.d.cts +1 -1
- package/dist/inference/interruption/defaults.d.ts +1 -1
- package/dist/inference/interruption/defaults.d.ts.map +1 -1
- package/dist/inference/interruption/defaults.js +1 -1
- package/dist/inference/interruption/defaults.js.map +1 -1
- package/dist/inference/interruption/http_transport.cjs +44 -28
- package/dist/inference/interruption/http_transport.cjs.map +1 -1
- package/dist/inference/interruption/http_transport.d.ts.map +1 -1
- package/dist/inference/interruption/http_transport.js +45 -29
- package/dist/inference/interruption/http_transport.js.map +1 -1
- package/dist/inference/interruption/interruption_detector.cjs +22 -5
- package/dist/inference/interruption/interruption_detector.cjs.map +1 -1
- package/dist/inference/interruption/interruption_detector.d.cts +2 -2
- package/dist/inference/interruption/interruption_detector.d.ts +2 -2
- package/dist/inference/interruption/interruption_detector.d.ts.map +1 -1
- package/dist/inference/interruption/interruption_detector.js +22 -5
- package/dist/inference/interruption/interruption_detector.js.map +1 -1
- package/dist/inference/interruption/interruption_stream.cjs +4 -4
- package/dist/inference/interruption/interruption_stream.cjs.map +1 -1
- package/dist/inference/interruption/interruption_stream.js +4 -4
- package/dist/inference/interruption/interruption_stream.js.map +1 -1
- package/dist/inference/interruption/types.cjs.map +1 -1
- package/dist/inference/interruption/types.d.cts +2 -2
- package/dist/inference/interruption/types.d.ts +2 -2
- package/dist/inference/interruption/types.d.ts.map +1 -1
- package/dist/inference/interruption/ws_transport.cjs +60 -47
- package/dist/inference/interruption/ws_transport.cjs.map +1 -1
- package/dist/inference/interruption/ws_transport.d.ts.map +1 -1
- package/dist/inference/interruption/ws_transport.js +60 -47
- package/dist/inference/interruption/ws_transport.js.map +1 -1
- package/dist/inference/llm.cjs.map +1 -1
- package/dist/inference/llm.d.cts +1 -1
- package/dist/inference/llm.d.ts +1 -1
- package/dist/inference/llm.d.ts.map +1 -1
- package/dist/inference/llm.js.map +1 -1
- package/dist/inference/stt.cjs +20 -12
- package/dist/inference/stt.cjs.map +1 -1
- package/dist/inference/stt.d.cts +3 -2
- package/dist/inference/stt.d.ts +3 -2
- package/dist/inference/stt.d.ts.map +1 -1
- package/dist/inference/stt.js +20 -12
- package/dist/inference/stt.js.map +1 -1
- package/dist/inference/stt.test.cjs +14 -0
- package/dist/inference/stt.test.cjs.map +1 -1
- package/dist/inference/stt.test.js +14 -0
- package/dist/inference/stt.test.js.map +1 -1
- package/dist/inference/tts.cjs +13 -4
- package/dist/inference/tts.cjs.map +1 -1
- package/dist/inference/tts.d.cts +8 -1
- package/dist/inference/tts.d.ts +8 -1
- package/dist/inference/tts.d.ts.map +1 -1
- package/dist/inference/tts.js +13 -4
- package/dist/inference/tts.js.map +1 -1
- package/dist/inference/tts.test.cjs +10 -0
- package/dist/inference/tts.test.cjs.map +1 -1
- package/dist/inference/tts.test.js +10 -0
- package/dist/inference/tts.test.js.map +1 -1
- package/dist/ipc/job_proc_lazy_main.cjs +41 -23
- package/dist/ipc/job_proc_lazy_main.cjs.map +1 -1
- package/dist/ipc/job_proc_lazy_main.js +41 -23
- package/dist/ipc/job_proc_lazy_main.js.map +1 -1
- package/dist/job.cjs +1 -1
- package/dist/job.cjs.map +1 -1
- package/dist/job.js +1 -1
- package/dist/job.js.map +1 -1
- package/dist/language.cjs +394 -0
- package/dist/language.cjs.map +1 -0
- package/dist/language.d.cts +15 -0
- package/dist/language.d.ts +15 -0
- package/dist/language.d.ts.map +1 -0
- package/dist/language.js +363 -0
- package/dist/language.js.map +1 -0
- package/dist/language.test.cjs +43 -0
- package/dist/language.test.cjs.map +1 -0
- package/dist/language.test.js +49 -0
- package/dist/language.test.js.map +1 -0
- package/dist/llm/index.cjs +2 -0
- package/dist/llm/index.cjs.map +1 -1
- package/dist/llm/index.d.cts +1 -1
- package/dist/llm/index.d.ts +1 -1
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +2 -0
- package/dist/llm/index.js.map +1 -1
- package/dist/stream/deferred_stream.cjs +6 -2
- package/dist/stream/deferred_stream.cjs.map +1 -1
- package/dist/stream/deferred_stream.d.ts.map +1 -1
- package/dist/stream/deferred_stream.js +6 -2
- package/dist/stream/deferred_stream.js.map +1 -1
- package/dist/stt/stt.cjs.map +1 -1
- package/dist/stt/stt.d.cts +2 -1
- package/dist/stt/stt.d.ts +2 -1
- package/dist/stt/stt.d.ts.map +1 -1
- package/dist/stt/stt.js.map +1 -1
- package/dist/utils.cjs +15 -0
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +8 -0
- package/dist/utils.d.ts +8 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +13 -0
- package/dist/utils.js.map +1 -1
- package/dist/version.cjs +1 -1
- package/dist/version.js +1 -1
- package/dist/voice/agent.cjs +14 -17
- package/dist/voice/agent.cjs.map +1 -1
- package/dist/voice/agent.d.cts +10 -11
- package/dist/voice/agent.d.ts +10 -11
- package/dist/voice/agent.d.ts.map +1 -1
- package/dist/voice/agent.js +15 -18
- package/dist/voice/agent.js.map +1 -1
- package/dist/voice/agent.test.cjs +194 -0
- package/dist/voice/agent.test.cjs.map +1 -1
- package/dist/voice/agent.test.js +195 -1
- package/dist/voice/agent.test.js.map +1 -1
- package/dist/voice/agent_activity.cjs +116 -39
- package/dist/voice/agent_activity.cjs.map +1 -1
- package/dist/voice/agent_activity.d.cts +2 -0
- package/dist/voice/agent_activity.d.ts +2 -0
- package/dist/voice/agent_activity.d.ts.map +1 -1
- package/dist/voice/agent_activity.js +117 -40
- package/dist/voice/agent_activity.js.map +1 -1
- package/dist/voice/agent_activity.test.cjs +135 -0
- package/dist/voice/agent_activity.test.cjs.map +1 -0
- package/dist/voice/agent_activity.test.js +134 -0
- package/dist/voice/agent_activity.test.js.map +1 -0
- package/dist/voice/agent_session.cjs +38 -38
- package/dist/voice/agent_session.cjs.map +1 -1
- package/dist/voice/agent_session.d.cts +65 -56
- package/dist/voice/agent_session.d.ts +65 -56
- package/dist/voice/agent_session.d.ts.map +1 -1
- package/dist/voice/agent_session.js +37 -37
- package/dist/voice/agent_session.js.map +1 -1
- package/dist/voice/audio_recognition.cjs +106 -52
- package/dist/voice/audio_recognition.cjs.map +1 -1
- package/dist/voice/audio_recognition.d.cts +4 -2
- package/dist/voice/audio_recognition.d.ts +4 -2
- package/dist/voice/audio_recognition.d.ts.map +1 -1
- package/dist/voice/audio_recognition.js +106 -52
- package/dist/voice/audio_recognition.js.map +1 -1
- package/dist/voice/audio_recognition_span.test.cjs +84 -22
- package/dist/voice/audio_recognition_span.test.cjs.map +1 -1
- package/dist/voice/audio_recognition_span.test.js +90 -23
- package/dist/voice/audio_recognition_span.test.js.map +1 -1
- package/dist/voice/events.cjs +1 -1
- package/dist/voice/events.cjs.map +1 -1
- package/dist/voice/events.d.cts +4 -3
- package/dist/voice/events.d.ts +4 -3
- package/dist/voice/events.d.ts.map +1 -1
- package/dist/voice/events.js +1 -1
- package/dist/voice/events.js.map +1 -1
- package/dist/voice/index.cjs +9 -1
- package/dist/voice/index.cjs.map +1 -1
- package/dist/voice/index.d.cts +1 -1
- package/dist/voice/index.d.ts +1 -1
- package/dist/voice/index.d.ts.map +1 -1
- package/dist/voice/index.js +10 -1
- package/dist/voice/index.js.map +1 -1
- package/dist/voice/remote_session.cjs +922 -0
- package/dist/voice/remote_session.cjs.map +1 -0
- package/dist/voice/remote_session.d.cts +108 -0
- package/dist/voice/remote_session.d.ts +108 -0
- package/dist/voice/remote_session.d.ts.map +1 -0
- package/dist/voice/remote_session.js +887 -0
- package/dist/voice/remote_session.js.map +1 -0
- package/dist/voice/report.cjs +11 -10
- package/dist/voice/report.cjs.map +1 -1
- package/dist/voice/report.d.cts +5 -3
- package/dist/voice/report.d.ts +5 -3
- package/dist/voice/report.d.ts.map +1 -1
- package/dist/voice/report.js +11 -10
- package/dist/voice/report.js.map +1 -1
- package/dist/voice/report.test.cjs +15 -0
- package/dist/voice/report.test.cjs.map +1 -1
- package/dist/voice/report.test.js +15 -0
- package/dist/voice/report.test.js.map +1 -1
- package/dist/voice/room_io/room_io.cjs +39 -0
- package/dist/voice/room_io/room_io.cjs.map +1 -1
- package/dist/voice/room_io/room_io.d.cts +3 -1
- package/dist/voice/room_io/room_io.d.ts +3 -1
- package/dist/voice/room_io/room_io.d.ts.map +1 -1
- package/dist/voice/room_io/room_io.js +40 -1
- package/dist/voice/room_io/room_io.js.map +1 -1
- package/dist/voice/turn_config/interruption.cjs.map +1 -1
- package/dist/voice/turn_config/interruption.d.cts +1 -1
- package/dist/voice/turn_config/interruption.d.ts +1 -1
- package/dist/voice/turn_config/interruption.d.ts.map +1 -1
- package/dist/voice/turn_config/interruption.js.map +1 -1
- package/dist/voice/turn_config/utils.cjs +95 -35
- package/dist/voice/turn_config/utils.cjs.map +1 -1
- package/dist/voice/turn_config/utils.d.cts +17 -5
- package/dist/voice/turn_config/utils.d.ts +17 -5
- package/dist/voice/turn_config/utils.d.ts.map +1 -1
- package/dist/voice/turn_config/utils.js +93 -35
- package/dist/voice/turn_config/utils.js.map +1 -1
- package/dist/voice/turn_config/utils.test.cjs +83 -41
- package/dist/voice/turn_config/utils.test.cjs.map +1 -1
- package/dist/voice/turn_config/utils.test.js +84 -42
- package/dist/voice/turn_config/utils.test.js.map +1 -1
- package/dist/worker.cjs +6 -29
- package/dist/worker.cjs.map +1 -1
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +6 -19
- package/dist/worker.js.map +1 -1
- package/package.json +3 -2
- package/src/cli.ts +2 -0
- package/src/constants.ts +1 -0
- package/src/cpu.test.ts +239 -0
- package/src/cpu.ts +173 -0
- package/src/index.ts +13 -15
- package/src/inference/interruption/defaults.ts +1 -1
- package/src/inference/interruption/http_transport.ts +49 -30
- package/src/inference/interruption/interruption_detector.ts +22 -6
- package/src/inference/interruption/interruption_stream.ts +4 -4
- package/src/inference/interruption/types.ts +2 -2
- package/src/inference/interruption/ws_transport.ts +63 -59
- package/src/inference/llm.ts +3 -1
- package/src/inference/stt.test.ts +17 -0
- package/src/inference/stt.ts +22 -14
- package/src/inference/tts.test.ts +12 -0
- package/src/inference/tts.ts +22 -6
- package/src/ipc/job_proc_lazy_main.ts +44 -24
- package/src/job.ts +1 -1
- package/src/language.test.ts +62 -0
- package/src/language.ts +380 -0
- package/src/llm/index.ts +2 -0
- package/src/stream/deferred_stream.ts +5 -1
- package/src/stt/stt.ts +2 -1
- package/src/utils.ts +20 -0
- package/src/voice/agent.test.ts +208 -1
- package/src/voice/agent.ts +21 -22
- package/src/voice/agent_activity.test.ts +194 -0
- package/src/voice/agent_activity.ts +161 -43
- package/src/voice/agent_session.ts +103 -92
- package/src/voice/audio_recognition.ts +124 -61
- package/src/voice/audio_recognition_span.test.ts +115 -35
- package/src/voice/events.ts +4 -3
- package/src/voice/index.ts +10 -1
- package/src/voice/remote_session.ts +1083 -0
- package/src/voice/report.test.ts +22 -3
- package/src/voice/report.ts +31 -14
- package/src/voice/room_io/room_io.ts +52 -2
- package/src/voice/turn_config/interruption.ts +1 -1
- package/src/voice/turn_config/utils.test.ts +91 -43
- package/src/voice/turn_config/utils.ts +120 -56
- package/src/worker.ts +34 -50
- package/dist/voice/client_events.cjs +0 -554
- package/dist/voice/client_events.cjs.map +0 -1
- package/dist/voice/client_events.d.cts +0 -195
- package/dist/voice/client_events.d.ts +0 -195
- package/dist/voice/client_events.d.ts.map +0 -1
- package/dist/voice/client_events.js +0 -548
- package/dist/voice/client_events.js.map +0 -1
- package/dist/voice/wire_format.cjs +0 -798
- package/dist/voice/wire_format.cjs.map +0 -1
- package/dist/voice/wire_format.d.cts +0 -5503
- package/dist/voice/wire_format.d.ts +0 -5503
- package/dist/voice/wire_format.d.ts.map +0 -1
- package/dist/voice/wire_format.js +0 -728
- package/dist/voice/wire_format.js.map +0 -1
- package/src/voice/client_events.ts +0 -838
- package/src/voice/wire_format.ts +0 -827
package/dist/cli.cjs
CHANGED
|
@@ -114,6 +114,7 @@ const runApp = (opts) => {
|
|
|
114
114
|
opts.apiSecret = globalOptions.apiSecret || opts.apiSecret;
|
|
115
115
|
opts.logLevel = commandOptions.logLevel;
|
|
116
116
|
opts.workerToken = globalOptions.workerToken || opts.workerToken;
|
|
117
|
+
process.env.LIVEKIT_DEV_MODE = "1";
|
|
117
118
|
runServer({
|
|
118
119
|
opts,
|
|
119
120
|
production: false,
|
|
@@ -128,6 +129,7 @@ const runApp = (opts) => {
|
|
|
128
129
|
opts.apiSecret = globalOptions.apiSecret || opts.apiSecret;
|
|
129
130
|
opts.logLevel = commandOptions.logLevel;
|
|
130
131
|
opts.workerToken = globalOptions.workerToken || opts.workerToken;
|
|
132
|
+
process.env.LIVEKIT_DEV_MODE = "1";
|
|
131
133
|
runServer({
|
|
132
134
|
opts,
|
|
133
135
|
production: false,
|
package/dist/cli.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli.ts","../../node_modules/.pnpm/tsup@8.4.0_@microsoft+api-extractor@7.43.7_@types+node@22.15.30__postcss@8.5.6_tsx@4.21.0_typescript@5.4.5/node_modules/tsup/assets/cjs_shims.js"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport { Command, Option } from 'commander';\nimport type { EventEmitter } from 'node:events';\nimport { initializeLogger, log } from './log.js';\nimport { Plugin } from './plugin.js';\nimport { version } from './version.js';\nimport { AgentServer, ServerOptions } from './worker.js';\n\ntype CliArgs = {\n opts: ServerOptions;\n production: boolean;\n watch: boolean;\n event?: EventEmitter;\n room?: string;\n participantIdentity?: string;\n};\n\nconst runServer = async (args: CliArgs) => {\n initializeLogger({ pretty: !args.production, level: args.opts.logLevel });\n const logger = log();\n\n // though `production` is defined in ServerOptions, it will always be overridden by CLI.\n const { production: _, ...opts } = args.opts; // eslint-disable-line @typescript-eslint/no-unused-vars\n const server = new AgentServer(new ServerOptions({ production: args.production, ...opts }));\n\n if (args.room) {\n server.event.once('worker_registered', () => {\n logger.info(`connecting to room ${args.room}`);\n server.simulateJob(args.room!, args.participantIdentity);\n });\n }\n\n process.once('SIGINT', async () => {\n logger.debug('SIGINT received in CLI');\n // allow C-c C-c for force interrupt\n process.once('SIGINT', () => {\n console.log('Force exit (Ctrl+C pressed twice)');\n process.exit(130); // SIGINT exit code\n });\n if (args.production) {\n await server.drain();\n }\n await server.close();\n logger.debug('worker closed due to SIGINT.');\n process.exit(130); // SIGINT exit code\n });\n\n process.once('SIGTERM', async () => {\n logger.debug('SIGTERM received in CLI.');\n if (args.production) {\n await server.drain();\n }\n await server.close();\n logger.debug('worker closed due to SIGTERM.');\n process.exit(143); // SIGTERM exit code\n });\n\n try {\n await server.run();\n } catch {\n logger.fatal('closing worker due to error.');\n process.exit(1);\n }\n};\n\n/**\n * Exposes a CLI for creating a new worker, in development or production mode.\n *\n * @param opts - Options to launch the worker with\n * @example\n * ```\n * if (process.argv[1] === fileURLToPath(import.meta.url)) {\n * cli.runApp(new ServerOptions({ agent: import.meta.filename }));\n * }\n * ```\n */\nexport const runApp = (opts: ServerOptions) => {\n const logLevelOption = (defaultLevel: string) =>\n new Option('--log-level <level>', 'Set the logging level')\n .choices(['trace', 'debug', 'info', 'warn', 'error', 'fatal'])\n .default(defaultLevel)\n .env('LOG_LEVEL');\n\n const program = new Command()\n .name('agents')\n .description('LiveKit Agents CLI')\n .version(version)\n .addOption(\n new Option('--url <string>', 'LiveKit server or Cloud project websocket URL').env(\n 'LIVEKIT_URL',\n ),\n )\n .addOption(\n new Option('--api-key <string>', \"LiveKit server or Cloud project's API key\").env(\n 'LIVEKIT_API_KEY',\n ),\n )\n .addOption(\n new Option('--api-secret <string>', \"LiveKit server or Cloud project's API secret\").env(\n 'LIVEKIT_API_SECRET',\n ),\n )\n .addOption(\n new Option('--worker-token <string>', 'Internal use only')\n .env('LIVEKIT_WORKER_TOKEN')\n .hideHelp(),\n )\n .action(() => {\n if (\n // do not run CLI if origin file is agents/ipc/job_main.js\n process.argv[1] !== new URL('ipc/job_main.js', import.meta.url).pathname &&\n process.argv.length < 3\n ) {\n program.help();\n }\n });\n\n program\n .command('start')\n .description('Start the worker in production mode')\n .addOption(logLevelOption('info'))\n .action((...[, command]) => {\n const globalOptions = program.optsWithGlobals();\n const commandOptions = command.opts();\n opts.wsURL = globalOptions.url || opts.wsURL;\n opts.apiKey = globalOptions.apiKey || opts.apiKey;\n opts.apiSecret = globalOptions.apiSecret || opts.apiSecret;\n opts.logLevel = commandOptions.logLevel;\n opts.workerToken = globalOptions.workerToken || opts.workerToken;\n runServer({\n opts,\n production: true,\n watch: false,\n });\n });\n\n program\n .command('dev')\n .description('Start the worker in development mode')\n .addOption(logLevelOption('debug'))\n .action((...[, command]) => {\n const globalOptions = program.optsWithGlobals();\n const commandOptions = command.opts();\n opts.wsURL = globalOptions.url || opts.wsURL;\n opts.apiKey = globalOptions.apiKey || opts.apiKey;\n opts.apiSecret = globalOptions.apiSecret || opts.apiSecret;\n opts.logLevel = commandOptions.logLevel;\n opts.workerToken = globalOptions.workerToken || opts.workerToken;\n runServer({\n opts,\n production: false,\n watch: false,\n });\n });\n\n program\n .command('connect')\n .description('Connect to a specific room')\n .requiredOption('--room <string>', 'Room name to connect to')\n .option('--participant-identity <string>', 'Identity of user to listen to')\n .addOption(logLevelOption('info'))\n .action((...[, command]) => {\n const globalOptions = program.optsWithGlobals();\n const commandOptions = command.opts();\n opts.wsURL = globalOptions.url || opts.wsURL;\n opts.apiKey = globalOptions.apiKey || opts.apiKey;\n opts.apiSecret = globalOptions.apiSecret || opts.apiSecret;\n opts.logLevel = commandOptions.logLevel;\n opts.workerToken = globalOptions.workerToken || opts.workerToken;\n runServer({\n opts,\n production: false,\n watch: false,\n room: commandOptions.room,\n participantIdentity: commandOptions.participantIdentity,\n });\n });\n\n program\n .command('download-files')\n .description('Download plugin dependency files')\n .addOption(logLevelOption('debug'))\n .action((...[, command]) => {\n const commandOptions = command.opts();\n initializeLogger({ pretty: true, level: commandOptions.logLevel });\n const logger = log();\n\n const downloadFiles = async () => {\n for (const plugin of Plugin.registeredPlugins) {\n logger.info(`Downloading files for ${plugin.title}`);\n try {\n await plugin.downloadFiles();\n logger.info(`Finished downloading files for ${plugin.title}`);\n } catch (error) {\n logger.error(`Failed to download files for ${plugin.title}: ${error}`);\n }\n }\n };\n\n downloadFiles()\n .catch((error) => {\n logger.fatal(`Error during file downloads: ${error}`);\n process.exit(1);\n })\n .finally(() => {\n process.exit(0);\n });\n });\n\n program.parse();\n};\n","// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () =>\n typeof document === 'undefined'\n ? new URL(`file:${__filename}`).href\n : (document.currentScript && document.currentScript.src) ||\n new URL('main.js', document.baseURI).href\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/cli.ts","../../node_modules/.pnpm/tsup@8.4.0_@microsoft+api-extractor@7.43.7_@types+node@22.15.30__postcss@8.5.6_tsx@4.21.0_typescript@5.4.5/node_modules/tsup/assets/cjs_shims.js"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport { Command, Option } from 'commander';\nimport type { EventEmitter } from 'node:events';\nimport { initializeLogger, log } from './log.js';\nimport { Plugin } from './plugin.js';\nimport { version } from './version.js';\nimport { AgentServer, ServerOptions } from './worker.js';\n\ntype CliArgs = {\n opts: ServerOptions;\n production: boolean;\n watch: boolean;\n event?: EventEmitter;\n room?: string;\n participantIdentity?: string;\n};\n\nconst runServer = async (args: CliArgs) => {\n initializeLogger({ pretty: !args.production, level: args.opts.logLevel });\n const logger = log();\n\n // though `production` is defined in ServerOptions, it will always be overridden by CLI.\n const { production: _, ...opts } = args.opts; // eslint-disable-line @typescript-eslint/no-unused-vars\n const server = new AgentServer(new ServerOptions({ production: args.production, ...opts }));\n\n if (args.room) {\n server.event.once('worker_registered', () => {\n logger.info(`connecting to room ${args.room}`);\n server.simulateJob(args.room!, args.participantIdentity);\n });\n }\n\n process.once('SIGINT', async () => {\n logger.debug('SIGINT received in CLI');\n // allow C-c C-c for force interrupt\n process.once('SIGINT', () => {\n console.log('Force exit (Ctrl+C pressed twice)');\n process.exit(130); // SIGINT exit code\n });\n if (args.production) {\n await server.drain();\n }\n await server.close();\n logger.debug('worker closed due to SIGINT.');\n process.exit(130); // SIGINT exit code\n });\n\n process.once('SIGTERM', async () => {\n logger.debug('SIGTERM received in CLI.');\n if (args.production) {\n await server.drain();\n }\n await server.close();\n logger.debug('worker closed due to SIGTERM.');\n process.exit(143); // SIGTERM exit code\n });\n\n try {\n await server.run();\n } catch {\n logger.fatal('closing worker due to error.');\n process.exit(1);\n }\n};\n\n/**\n * Exposes a CLI for creating a new worker, in development or production mode.\n *\n * @param opts - Options to launch the worker with\n * @example\n * ```\n * if (process.argv[1] === fileURLToPath(import.meta.url)) {\n * cli.runApp(new ServerOptions({ agent: import.meta.filename }));\n * }\n * ```\n */\nexport const runApp = (opts: ServerOptions) => {\n const logLevelOption = (defaultLevel: string) =>\n new Option('--log-level <level>', 'Set the logging level')\n .choices(['trace', 'debug', 'info', 'warn', 'error', 'fatal'])\n .default(defaultLevel)\n .env('LOG_LEVEL');\n\n const program = new Command()\n .name('agents')\n .description('LiveKit Agents CLI')\n .version(version)\n .addOption(\n new Option('--url <string>', 'LiveKit server or Cloud project websocket URL').env(\n 'LIVEKIT_URL',\n ),\n )\n .addOption(\n new Option('--api-key <string>', \"LiveKit server or Cloud project's API key\").env(\n 'LIVEKIT_API_KEY',\n ),\n )\n .addOption(\n new Option('--api-secret <string>', \"LiveKit server or Cloud project's API secret\").env(\n 'LIVEKIT_API_SECRET',\n ),\n )\n .addOption(\n new Option('--worker-token <string>', 'Internal use only')\n .env('LIVEKIT_WORKER_TOKEN')\n .hideHelp(),\n )\n .action(() => {\n if (\n // do not run CLI if origin file is agents/ipc/job_main.js\n process.argv[1] !== new URL('ipc/job_main.js', import.meta.url).pathname &&\n process.argv.length < 3\n ) {\n program.help();\n }\n });\n\n program\n .command('start')\n .description('Start the worker in production mode')\n .addOption(logLevelOption('info'))\n .action((...[, command]) => {\n const globalOptions = program.optsWithGlobals();\n const commandOptions = command.opts();\n opts.wsURL = globalOptions.url || opts.wsURL;\n opts.apiKey = globalOptions.apiKey || opts.apiKey;\n opts.apiSecret = globalOptions.apiSecret || opts.apiSecret;\n opts.logLevel = commandOptions.logLevel;\n opts.workerToken = globalOptions.workerToken || opts.workerToken;\n runServer({\n opts,\n production: true,\n watch: false,\n });\n });\n\n program\n .command('dev')\n .description('Start the worker in development mode')\n .addOption(logLevelOption('debug'))\n .action((...[, command]) => {\n const globalOptions = program.optsWithGlobals();\n const commandOptions = command.opts();\n opts.wsURL = globalOptions.url || opts.wsURL;\n opts.apiKey = globalOptions.apiKey || opts.apiKey;\n opts.apiSecret = globalOptions.apiSecret || opts.apiSecret;\n opts.logLevel = commandOptions.logLevel;\n opts.workerToken = globalOptions.workerToken || opts.workerToken;\n process.env.LIVEKIT_DEV_MODE = '1';\n runServer({\n opts,\n production: false,\n watch: false,\n });\n });\n\n program\n .command('connect')\n .description('Connect to a specific room')\n .requiredOption('--room <string>', 'Room name to connect to')\n .option('--participant-identity <string>', 'Identity of user to listen to')\n .addOption(logLevelOption('info'))\n .action((...[, command]) => {\n const globalOptions = program.optsWithGlobals();\n const commandOptions = command.opts();\n opts.wsURL = globalOptions.url || opts.wsURL;\n opts.apiKey = globalOptions.apiKey || opts.apiKey;\n opts.apiSecret = globalOptions.apiSecret || opts.apiSecret;\n opts.logLevel = commandOptions.logLevel;\n opts.workerToken = globalOptions.workerToken || opts.workerToken;\n process.env.LIVEKIT_DEV_MODE = '1';\n runServer({\n opts,\n production: false,\n watch: false,\n room: commandOptions.room,\n participantIdentity: commandOptions.participantIdentity,\n });\n });\n\n program\n .command('download-files')\n .description('Download plugin dependency files')\n .addOption(logLevelOption('debug'))\n .action((...[, command]) => {\n const commandOptions = command.opts();\n initializeLogger({ pretty: true, level: commandOptions.logLevel });\n const logger = log();\n\n const downloadFiles = async () => {\n for (const plugin of Plugin.registeredPlugins) {\n logger.info(`Downloading files for ${plugin.title}`);\n try {\n await plugin.downloadFiles();\n logger.info(`Finished downloading files for ${plugin.title}`);\n } catch (error) {\n logger.error(`Failed to download files for ${plugin.title}: ${error}`);\n }\n }\n };\n\n downloadFiles()\n .catch((error) => {\n logger.fatal(`Error during file downloads: ${error}`);\n process.exit(1);\n })\n .finally(() => {\n process.exit(0);\n });\n });\n\n program.parse();\n};\n","// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () =>\n typeof document === 'undefined'\n ? new URL(`file:${__filename}`).href\n : (document.currentScript && document.currentScript.src) ||\n new URL('main.js', document.baseURI).href\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n"],"mappings":"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","names":[]}
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAQA,OAAO,EAAe,aAAa,EAAE,MAAM,aAAa,CAAC;AA2DzD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM,SAAU,aAAa,
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAQA,OAAO,EAAe,aAAa,EAAE,MAAM,aAAa,CAAC;AA2DzD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM,SAAU,aAAa,SAwIzC,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -89,6 +89,7 @@ const runApp = (opts) => {
|
|
|
89
89
|
opts.apiSecret = globalOptions.apiSecret || opts.apiSecret;
|
|
90
90
|
opts.logLevel = commandOptions.logLevel;
|
|
91
91
|
opts.workerToken = globalOptions.workerToken || opts.workerToken;
|
|
92
|
+
process.env.LIVEKIT_DEV_MODE = "1";
|
|
92
93
|
runServer({
|
|
93
94
|
opts,
|
|
94
95
|
production: false,
|
|
@@ -103,6 +104,7 @@ const runApp = (opts) => {
|
|
|
103
104
|
opts.apiSecret = globalOptions.apiSecret || opts.apiSecret;
|
|
104
105
|
opts.logLevel = commandOptions.logLevel;
|
|
105
106
|
opts.workerToken = globalOptions.workerToken || opts.workerToken;
|
|
107
|
+
process.env.LIVEKIT_DEV_MODE = "1";
|
|
106
108
|
runServer({
|
|
107
109
|
opts,
|
|
108
110
|
production: false,
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport { Command, Option } from 'commander';\nimport type { EventEmitter } from 'node:events';\nimport { initializeLogger, log } from './log.js';\nimport { Plugin } from './plugin.js';\nimport { version } from './version.js';\nimport { AgentServer, ServerOptions } from './worker.js';\n\ntype CliArgs = {\n opts: ServerOptions;\n production: boolean;\n watch: boolean;\n event?: EventEmitter;\n room?: string;\n participantIdentity?: string;\n};\n\nconst runServer = async (args: CliArgs) => {\n initializeLogger({ pretty: !args.production, level: args.opts.logLevel });\n const logger = log();\n\n // though `production` is defined in ServerOptions, it will always be overridden by CLI.\n const { production: _, ...opts } = args.opts; // eslint-disable-line @typescript-eslint/no-unused-vars\n const server = new AgentServer(new ServerOptions({ production: args.production, ...opts }));\n\n if (args.room) {\n server.event.once('worker_registered', () => {\n logger.info(`connecting to room ${args.room}`);\n server.simulateJob(args.room!, args.participantIdentity);\n });\n }\n\n process.once('SIGINT', async () => {\n logger.debug('SIGINT received in CLI');\n // allow C-c C-c for force interrupt\n process.once('SIGINT', () => {\n console.log('Force exit (Ctrl+C pressed twice)');\n process.exit(130); // SIGINT exit code\n });\n if (args.production) {\n await server.drain();\n }\n await server.close();\n logger.debug('worker closed due to SIGINT.');\n process.exit(130); // SIGINT exit code\n });\n\n process.once('SIGTERM', async () => {\n logger.debug('SIGTERM received in CLI.');\n if (args.production) {\n await server.drain();\n }\n await server.close();\n logger.debug('worker closed due to SIGTERM.');\n process.exit(143); // SIGTERM exit code\n });\n\n try {\n await server.run();\n } catch {\n logger.fatal('closing worker due to error.');\n process.exit(1);\n }\n};\n\n/**\n * Exposes a CLI for creating a new worker, in development or production mode.\n *\n * @param opts - Options to launch the worker with\n * @example\n * ```\n * if (process.argv[1] === fileURLToPath(import.meta.url)) {\n * cli.runApp(new ServerOptions({ agent: import.meta.filename }));\n * }\n * ```\n */\nexport const runApp = (opts: ServerOptions) => {\n const logLevelOption = (defaultLevel: string) =>\n new Option('--log-level <level>', 'Set the logging level')\n .choices(['trace', 'debug', 'info', 'warn', 'error', 'fatal'])\n .default(defaultLevel)\n .env('LOG_LEVEL');\n\n const program = new Command()\n .name('agents')\n .description('LiveKit Agents CLI')\n .version(version)\n .addOption(\n new Option('--url <string>', 'LiveKit server or Cloud project websocket URL').env(\n 'LIVEKIT_URL',\n ),\n )\n .addOption(\n new Option('--api-key <string>', \"LiveKit server or Cloud project's API key\").env(\n 'LIVEKIT_API_KEY',\n ),\n )\n .addOption(\n new Option('--api-secret <string>', \"LiveKit server or Cloud project's API secret\").env(\n 'LIVEKIT_API_SECRET',\n ),\n )\n .addOption(\n new Option('--worker-token <string>', 'Internal use only')\n .env('LIVEKIT_WORKER_TOKEN')\n .hideHelp(),\n )\n .action(() => {\n if (\n // do not run CLI if origin file is agents/ipc/job_main.js\n process.argv[1] !== new URL('ipc/job_main.js', import.meta.url).pathname &&\n process.argv.length < 3\n ) {\n program.help();\n }\n });\n\n program\n .command('start')\n .description('Start the worker in production mode')\n .addOption(logLevelOption('info'))\n .action((...[, command]) => {\n const globalOptions = program.optsWithGlobals();\n const commandOptions = command.opts();\n opts.wsURL = globalOptions.url || opts.wsURL;\n opts.apiKey = globalOptions.apiKey || opts.apiKey;\n opts.apiSecret = globalOptions.apiSecret || opts.apiSecret;\n opts.logLevel = commandOptions.logLevel;\n opts.workerToken = globalOptions.workerToken || opts.workerToken;\n runServer({\n opts,\n production: true,\n watch: false,\n });\n });\n\n program\n .command('dev')\n .description('Start the worker in development mode')\n .addOption(logLevelOption('debug'))\n .action((...[, command]) => {\n const globalOptions = program.optsWithGlobals();\n const commandOptions = command.opts();\n opts.wsURL = globalOptions.url || opts.wsURL;\n opts.apiKey = globalOptions.apiKey || opts.apiKey;\n opts.apiSecret = globalOptions.apiSecret || opts.apiSecret;\n opts.logLevel = commandOptions.logLevel;\n opts.workerToken = globalOptions.workerToken || opts.workerToken;\n runServer({\n opts,\n production: false,\n watch: false,\n });\n });\n\n program\n .command('connect')\n .description('Connect to a specific room')\n .requiredOption('--room <string>', 'Room name to connect to')\n .option('--participant-identity <string>', 'Identity of user to listen to')\n .addOption(logLevelOption('info'))\n .action((...[, command]) => {\n const globalOptions = program.optsWithGlobals();\n const commandOptions = command.opts();\n opts.wsURL = globalOptions.url || opts.wsURL;\n opts.apiKey = globalOptions.apiKey || opts.apiKey;\n opts.apiSecret = globalOptions.apiSecret || opts.apiSecret;\n opts.logLevel = commandOptions.logLevel;\n opts.workerToken = globalOptions.workerToken || opts.workerToken;\n runServer({\n opts,\n production: false,\n watch: false,\n room: commandOptions.room,\n participantIdentity: commandOptions.participantIdentity,\n });\n });\n\n program\n .command('download-files')\n .description('Download plugin dependency files')\n .addOption(logLevelOption('debug'))\n .action((...[, command]) => {\n const commandOptions = command.opts();\n initializeLogger({ pretty: true, level: commandOptions.logLevel });\n const logger = log();\n\n const downloadFiles = async () => {\n for (const plugin of Plugin.registeredPlugins) {\n logger.info(`Downloading files for ${plugin.title}`);\n try {\n await plugin.downloadFiles();\n logger.info(`Finished downloading files for ${plugin.title}`);\n } catch (error) {\n logger.error(`Failed to download files for ${plugin.title}: ${error}`);\n }\n }\n };\n\n downloadFiles()\n .catch((error) => {\n logger.fatal(`Error during file downloads: ${error}`);\n process.exit(1);\n })\n .finally(() => {\n process.exit(0);\n });\n });\n\n program.parse();\n};\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/cli.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport { Command, Option } from 'commander';\nimport type { EventEmitter } from 'node:events';\nimport { initializeLogger, log } from './log.js';\nimport { Plugin } from './plugin.js';\nimport { version } from './version.js';\nimport { AgentServer, ServerOptions } from './worker.js';\n\ntype CliArgs = {\n opts: ServerOptions;\n production: boolean;\n watch: boolean;\n event?: EventEmitter;\n room?: string;\n participantIdentity?: string;\n};\n\nconst runServer = async (args: CliArgs) => {\n initializeLogger({ pretty: !args.production, level: args.opts.logLevel });\n const logger = log();\n\n // though `production` is defined in ServerOptions, it will always be overridden by CLI.\n const { production: _, ...opts } = args.opts; // eslint-disable-line @typescript-eslint/no-unused-vars\n const server = new AgentServer(new ServerOptions({ production: args.production, ...opts }));\n\n if (args.room) {\n server.event.once('worker_registered', () => {\n logger.info(`connecting to room ${args.room}`);\n server.simulateJob(args.room!, args.participantIdentity);\n });\n }\n\n process.once('SIGINT', async () => {\n logger.debug('SIGINT received in CLI');\n // allow C-c C-c for force interrupt\n process.once('SIGINT', () => {\n console.log('Force exit (Ctrl+C pressed twice)');\n process.exit(130); // SIGINT exit code\n });\n if (args.production) {\n await server.drain();\n }\n await server.close();\n logger.debug('worker closed due to SIGINT.');\n process.exit(130); // SIGINT exit code\n });\n\n process.once('SIGTERM', async () => {\n logger.debug('SIGTERM received in CLI.');\n if (args.production) {\n await server.drain();\n }\n await server.close();\n logger.debug('worker closed due to SIGTERM.');\n process.exit(143); // SIGTERM exit code\n });\n\n try {\n await server.run();\n } catch {\n logger.fatal('closing worker due to error.');\n process.exit(1);\n }\n};\n\n/**\n * Exposes a CLI for creating a new worker, in development or production mode.\n *\n * @param opts - Options to launch the worker with\n * @example\n * ```\n * if (process.argv[1] === fileURLToPath(import.meta.url)) {\n * cli.runApp(new ServerOptions({ agent: import.meta.filename }));\n * }\n * ```\n */\nexport const runApp = (opts: ServerOptions) => {\n const logLevelOption = (defaultLevel: string) =>\n new Option('--log-level <level>', 'Set the logging level')\n .choices(['trace', 'debug', 'info', 'warn', 'error', 'fatal'])\n .default(defaultLevel)\n .env('LOG_LEVEL');\n\n const program = new Command()\n .name('agents')\n .description('LiveKit Agents CLI')\n .version(version)\n .addOption(\n new Option('--url <string>', 'LiveKit server or Cloud project websocket URL').env(\n 'LIVEKIT_URL',\n ),\n )\n .addOption(\n new Option('--api-key <string>', \"LiveKit server or Cloud project's API key\").env(\n 'LIVEKIT_API_KEY',\n ),\n )\n .addOption(\n new Option('--api-secret <string>', \"LiveKit server or Cloud project's API secret\").env(\n 'LIVEKIT_API_SECRET',\n ),\n )\n .addOption(\n new Option('--worker-token <string>', 'Internal use only')\n .env('LIVEKIT_WORKER_TOKEN')\n .hideHelp(),\n )\n .action(() => {\n if (\n // do not run CLI if origin file is agents/ipc/job_main.js\n process.argv[1] !== new URL('ipc/job_main.js', import.meta.url).pathname &&\n process.argv.length < 3\n ) {\n program.help();\n }\n });\n\n program\n .command('start')\n .description('Start the worker in production mode')\n .addOption(logLevelOption('info'))\n .action((...[, command]) => {\n const globalOptions = program.optsWithGlobals();\n const commandOptions = command.opts();\n opts.wsURL = globalOptions.url || opts.wsURL;\n opts.apiKey = globalOptions.apiKey || opts.apiKey;\n opts.apiSecret = globalOptions.apiSecret || opts.apiSecret;\n opts.logLevel = commandOptions.logLevel;\n opts.workerToken = globalOptions.workerToken || opts.workerToken;\n runServer({\n opts,\n production: true,\n watch: false,\n });\n });\n\n program\n .command('dev')\n .description('Start the worker in development mode')\n .addOption(logLevelOption('debug'))\n .action((...[, command]) => {\n const globalOptions = program.optsWithGlobals();\n const commandOptions = command.opts();\n opts.wsURL = globalOptions.url || opts.wsURL;\n opts.apiKey = globalOptions.apiKey || opts.apiKey;\n opts.apiSecret = globalOptions.apiSecret || opts.apiSecret;\n opts.logLevel = commandOptions.logLevel;\n opts.workerToken = globalOptions.workerToken || opts.workerToken;\n process.env.LIVEKIT_DEV_MODE = '1';\n runServer({\n opts,\n production: false,\n watch: false,\n });\n });\n\n program\n .command('connect')\n .description('Connect to a specific room')\n .requiredOption('--room <string>', 'Room name to connect to')\n .option('--participant-identity <string>', 'Identity of user to listen to')\n .addOption(logLevelOption('info'))\n .action((...[, command]) => {\n const globalOptions = program.optsWithGlobals();\n const commandOptions = command.opts();\n opts.wsURL = globalOptions.url || opts.wsURL;\n opts.apiKey = globalOptions.apiKey || opts.apiKey;\n opts.apiSecret = globalOptions.apiSecret || opts.apiSecret;\n opts.logLevel = commandOptions.logLevel;\n opts.workerToken = globalOptions.workerToken || opts.workerToken;\n process.env.LIVEKIT_DEV_MODE = '1';\n runServer({\n opts,\n production: false,\n watch: false,\n room: commandOptions.room,\n participantIdentity: commandOptions.participantIdentity,\n });\n });\n\n program\n .command('download-files')\n .description('Download plugin dependency files')\n .addOption(logLevelOption('debug'))\n .action((...[, command]) => {\n const commandOptions = command.opts();\n initializeLogger({ pretty: true, level: commandOptions.logLevel });\n const logger = log();\n\n const downloadFiles = async () => {\n for (const plugin of Plugin.registeredPlugins) {\n logger.info(`Downloading files for ${plugin.title}`);\n try {\n await plugin.downloadFiles();\n logger.info(`Finished downloading files for ${plugin.title}`);\n } catch (error) {\n logger.error(`Failed to download files for ${plugin.title}: ${error}`);\n }\n }\n };\n\n downloadFiles()\n .catch((error) => {\n logger.fatal(`Error during file downloads: ${error}`);\n process.exit(1);\n })\n .finally(() => {\n process.exit(0);\n });\n });\n\n program.parse();\n};\n"],"mappings":"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","names":[]}
|
package/dist/constants.cjs
CHANGED
|
@@ -32,6 +32,7 @@ __export(constants_exports, {
|
|
|
32
32
|
TOPIC_AGENT_RESPONSE: () => TOPIC_AGENT_RESPONSE,
|
|
33
33
|
TOPIC_CHAT: () => TOPIC_CHAT,
|
|
34
34
|
TOPIC_CLIENT_EVENTS: () => TOPIC_CLIENT_EVENTS,
|
|
35
|
+
TOPIC_SESSION_MESSAGES: () => TOPIC_SESSION_MESSAGES,
|
|
35
36
|
TOPIC_TRANSCRIPTION: () => TOPIC_TRANSCRIPTION
|
|
36
37
|
});
|
|
37
38
|
module.exports = __toCommonJS(constants_exports);
|
|
@@ -50,6 +51,7 @@ const RPC_GET_AGENT_INFO = "lk.agent.get_agent_info";
|
|
|
50
51
|
const RPC_SEND_MESSAGE = "lk.agent.send_message";
|
|
51
52
|
const TOPIC_AGENT_REQUEST = "lk.agent.request";
|
|
52
53
|
const TOPIC_AGENT_RESPONSE = "lk.agent.response";
|
|
54
|
+
const TOPIC_SESSION_MESSAGES = "lk.agent.session";
|
|
53
55
|
// Annotate the CommonJS export names for ESM import in node:
|
|
54
56
|
0 && (module.exports = {
|
|
55
57
|
ATTRIBUTE_AGENT_NAME,
|
|
@@ -66,6 +68,7 @@ const TOPIC_AGENT_RESPONSE = "lk.agent.response";
|
|
|
66
68
|
TOPIC_AGENT_RESPONSE,
|
|
67
69
|
TOPIC_CHAT,
|
|
68
70
|
TOPIC_CLIENT_EVENTS,
|
|
71
|
+
TOPIC_SESSION_MESSAGES,
|
|
69
72
|
TOPIC_TRANSCRIPTION
|
|
70
73
|
});
|
|
71
74
|
//# sourceMappingURL=constants.cjs.map
|
package/dist/constants.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/constants.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nexport const ATTRIBUTE_TRANSCRIPTION_TRACK_ID = 'lk.transcribed_track_id';\nexport const ATTRIBUTE_TRANSCRIPTION_FINAL = 'lk.transcription_final';\nexport const TOPIC_TRANSCRIPTION = 'lk.transcription';\nexport const ATTRIBUTE_TRANSCRIPTION_SEGMENT_ID = 'lk.segment_id';\nexport const ATTRIBUTE_PUBLISH_ON_BEHALF = 'lk.publish_on_behalf';\nexport const TOPIC_CHAT = 'lk.chat';\n\nexport const ATTRIBUTE_AGENT_STATE = 'lk.agent.state';\nexport const ATTRIBUTE_AGENT_NAME = 'lk.agent.name';\n\n// TODO(eval): export const ATTRIBUTE_SIMULATOR = 'lk.simulator';\n\nexport const TOPIC_CLIENT_EVENTS = 'lk.agent.events';\nexport const RPC_GET_SESSION_STATE = 'lk.agent.get_session_state';\nexport const RPC_GET_CHAT_HISTORY = 'lk.agent.get_chat_history';\nexport const RPC_GET_AGENT_INFO = 'lk.agent.get_agent_info';\nexport const RPC_SEND_MESSAGE = 'lk.agent.send_message';\nexport const TOPIC_AGENT_REQUEST = 'lk.agent.request';\nexport const TOPIC_AGENT_RESPONSE = 'lk.agent.response';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,MAAM,mCAAmC;AACzC,MAAM,gCAAgC;AACtC,MAAM,sBAAsB;AAC5B,MAAM,qCAAqC;AAC3C,MAAM,8BAA8B;AACpC,MAAM,aAAa;AAEnB,MAAM,wBAAwB;AAC9B,MAAM,uBAAuB;AAI7B,MAAM,sBAAsB;AAC5B,MAAM,wBAAwB;AAC9B,MAAM,uBAAuB;AAC7B,MAAM,qBAAqB;AAC3B,MAAM,mBAAmB;AACzB,MAAM,sBAAsB;AAC5B,MAAM,uBAAuB;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/constants.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nexport const ATTRIBUTE_TRANSCRIPTION_TRACK_ID = 'lk.transcribed_track_id';\nexport const ATTRIBUTE_TRANSCRIPTION_FINAL = 'lk.transcription_final';\nexport const TOPIC_TRANSCRIPTION = 'lk.transcription';\nexport const ATTRIBUTE_TRANSCRIPTION_SEGMENT_ID = 'lk.segment_id';\nexport const ATTRIBUTE_PUBLISH_ON_BEHALF = 'lk.publish_on_behalf';\nexport const TOPIC_CHAT = 'lk.chat';\n\nexport const ATTRIBUTE_AGENT_STATE = 'lk.agent.state';\nexport const ATTRIBUTE_AGENT_NAME = 'lk.agent.name';\n\n// TODO(eval): export const ATTRIBUTE_SIMULATOR = 'lk.simulator';\n\nexport const TOPIC_CLIENT_EVENTS = 'lk.agent.events';\nexport const RPC_GET_SESSION_STATE = 'lk.agent.get_session_state';\nexport const RPC_GET_CHAT_HISTORY = 'lk.agent.get_chat_history';\nexport const RPC_GET_AGENT_INFO = 'lk.agent.get_agent_info';\nexport const RPC_SEND_MESSAGE = 'lk.agent.send_message';\nexport const TOPIC_AGENT_REQUEST = 'lk.agent.request';\nexport const TOPIC_AGENT_RESPONSE = 'lk.agent.response';\nexport const TOPIC_SESSION_MESSAGES = 'lk.agent.session';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,MAAM,mCAAmC;AACzC,MAAM,gCAAgC;AACtC,MAAM,sBAAsB;AAC5B,MAAM,qCAAqC;AAC3C,MAAM,8BAA8B;AACpC,MAAM,aAAa;AAEnB,MAAM,wBAAwB;AAC9B,MAAM,uBAAuB;AAI7B,MAAM,sBAAsB;AAC5B,MAAM,wBAAwB;AAC9B,MAAM,uBAAuB;AAC7B,MAAM,qBAAqB;AAC3B,MAAM,mBAAmB;AACzB,MAAM,sBAAsB;AAC5B,MAAM,uBAAuB;AAC7B,MAAM,yBAAyB;","names":[]}
|
package/dist/constants.d.cts
CHANGED
|
@@ -13,4 +13,5 @@ export declare const RPC_GET_AGENT_INFO = "lk.agent.get_agent_info";
|
|
|
13
13
|
export declare const RPC_SEND_MESSAGE = "lk.agent.send_message";
|
|
14
14
|
export declare const TOPIC_AGENT_REQUEST = "lk.agent.request";
|
|
15
15
|
export declare const TOPIC_AGENT_RESPONSE = "lk.agent.response";
|
|
16
|
+
export declare const TOPIC_SESSION_MESSAGES = "lk.agent.session";
|
|
16
17
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts
CHANGED
|
@@ -13,4 +13,5 @@ export declare const RPC_GET_AGENT_INFO = "lk.agent.get_agent_info";
|
|
|
13
13
|
export declare const RPC_SEND_MESSAGE = "lk.agent.send_message";
|
|
14
14
|
export declare const TOPIC_AGENT_REQUEST = "lk.agent.request";
|
|
15
15
|
export declare const TOPIC_AGENT_RESPONSE = "lk.agent.response";
|
|
16
|
+
export declare const TOPIC_SESSION_MESSAGES = "lk.agent.session";
|
|
16
17
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,gCAAgC,4BAA4B,CAAC;AAC1E,eAAO,MAAM,6BAA6B,2BAA2B,CAAC;AACtE,eAAO,MAAM,mBAAmB,qBAAqB,CAAC;AACtD,eAAO,MAAM,kCAAkC,kBAAkB,CAAC;AAClE,eAAO,MAAM,2BAA2B,yBAAyB,CAAC;AAClE,eAAO,MAAM,UAAU,YAAY,CAAC;AAEpC,eAAO,MAAM,qBAAqB,mBAAmB,CAAC;AACtD,eAAO,MAAM,oBAAoB,kBAAkB,CAAC;AAIpD,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AACrD,eAAO,MAAM,qBAAqB,+BAA+B,CAAC;AAClE,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAChE,eAAO,MAAM,kBAAkB,4BAA4B,CAAC;AAC5D,eAAO,MAAM,gBAAgB,0BAA0B,CAAC;AACxD,eAAO,MAAM,mBAAmB,qBAAqB,CAAC;AACtD,eAAO,MAAM,oBAAoB,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,gCAAgC,4BAA4B,CAAC;AAC1E,eAAO,MAAM,6BAA6B,2BAA2B,CAAC;AACtE,eAAO,MAAM,mBAAmB,qBAAqB,CAAC;AACtD,eAAO,MAAM,kCAAkC,kBAAkB,CAAC;AAClE,eAAO,MAAM,2BAA2B,yBAAyB,CAAC;AAClE,eAAO,MAAM,UAAU,YAAY,CAAC;AAEpC,eAAO,MAAM,qBAAqB,mBAAmB,CAAC;AACtD,eAAO,MAAM,oBAAoB,kBAAkB,CAAC;AAIpD,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AACrD,eAAO,MAAM,qBAAqB,+BAA+B,CAAC;AAClE,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAChE,eAAO,MAAM,kBAAkB,4BAA4B,CAAC;AAC5D,eAAO,MAAM,gBAAgB,0BAA0B,CAAC;AACxD,eAAO,MAAM,mBAAmB,qBAAqB,CAAC;AACtD,eAAO,MAAM,oBAAoB,sBAAsB,CAAC;AACxD,eAAO,MAAM,sBAAsB,qBAAqB,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -13,6 +13,7 @@ const RPC_GET_AGENT_INFO = "lk.agent.get_agent_info";
|
|
|
13
13
|
const RPC_SEND_MESSAGE = "lk.agent.send_message";
|
|
14
14
|
const TOPIC_AGENT_REQUEST = "lk.agent.request";
|
|
15
15
|
const TOPIC_AGENT_RESPONSE = "lk.agent.response";
|
|
16
|
+
const TOPIC_SESSION_MESSAGES = "lk.agent.session";
|
|
16
17
|
export {
|
|
17
18
|
ATTRIBUTE_AGENT_NAME,
|
|
18
19
|
ATTRIBUTE_AGENT_STATE,
|
|
@@ -28,6 +29,7 @@ export {
|
|
|
28
29
|
TOPIC_AGENT_RESPONSE,
|
|
29
30
|
TOPIC_CHAT,
|
|
30
31
|
TOPIC_CLIENT_EVENTS,
|
|
32
|
+
TOPIC_SESSION_MESSAGES,
|
|
31
33
|
TOPIC_TRANSCRIPTION
|
|
32
34
|
};
|
|
33
35
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/constants.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nexport const ATTRIBUTE_TRANSCRIPTION_TRACK_ID = 'lk.transcribed_track_id';\nexport const ATTRIBUTE_TRANSCRIPTION_FINAL = 'lk.transcription_final';\nexport const TOPIC_TRANSCRIPTION = 'lk.transcription';\nexport const ATTRIBUTE_TRANSCRIPTION_SEGMENT_ID = 'lk.segment_id';\nexport const ATTRIBUTE_PUBLISH_ON_BEHALF = 'lk.publish_on_behalf';\nexport const TOPIC_CHAT = 'lk.chat';\n\nexport const ATTRIBUTE_AGENT_STATE = 'lk.agent.state';\nexport const ATTRIBUTE_AGENT_NAME = 'lk.agent.name';\n\n// TODO(eval): export const ATTRIBUTE_SIMULATOR = 'lk.simulator';\n\nexport const TOPIC_CLIENT_EVENTS = 'lk.agent.events';\nexport const RPC_GET_SESSION_STATE = 'lk.agent.get_session_state';\nexport const RPC_GET_CHAT_HISTORY = 'lk.agent.get_chat_history';\nexport const RPC_GET_AGENT_INFO = 'lk.agent.get_agent_info';\nexport const RPC_SEND_MESSAGE = 'lk.agent.send_message';\nexport const TOPIC_AGENT_REQUEST = 'lk.agent.request';\nexport const TOPIC_AGENT_RESPONSE = 'lk.agent.response';\n"],"mappings":"AAGO,MAAM,mCAAmC;AACzC,MAAM,gCAAgC;AACtC,MAAM,sBAAsB;AAC5B,MAAM,qCAAqC;AAC3C,MAAM,8BAA8B;AACpC,MAAM,aAAa;AAEnB,MAAM,wBAAwB;AAC9B,MAAM,uBAAuB;AAI7B,MAAM,sBAAsB;AAC5B,MAAM,wBAAwB;AAC9B,MAAM,uBAAuB;AAC7B,MAAM,qBAAqB;AAC3B,MAAM,mBAAmB;AACzB,MAAM,sBAAsB;AAC5B,MAAM,uBAAuB;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/constants.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nexport const ATTRIBUTE_TRANSCRIPTION_TRACK_ID = 'lk.transcribed_track_id';\nexport const ATTRIBUTE_TRANSCRIPTION_FINAL = 'lk.transcription_final';\nexport const TOPIC_TRANSCRIPTION = 'lk.transcription';\nexport const ATTRIBUTE_TRANSCRIPTION_SEGMENT_ID = 'lk.segment_id';\nexport const ATTRIBUTE_PUBLISH_ON_BEHALF = 'lk.publish_on_behalf';\nexport const TOPIC_CHAT = 'lk.chat';\n\nexport const ATTRIBUTE_AGENT_STATE = 'lk.agent.state';\nexport const ATTRIBUTE_AGENT_NAME = 'lk.agent.name';\n\n// TODO(eval): export const ATTRIBUTE_SIMULATOR = 'lk.simulator';\n\nexport const TOPIC_CLIENT_EVENTS = 'lk.agent.events';\nexport const RPC_GET_SESSION_STATE = 'lk.agent.get_session_state';\nexport const RPC_GET_CHAT_HISTORY = 'lk.agent.get_chat_history';\nexport const RPC_GET_AGENT_INFO = 'lk.agent.get_agent_info';\nexport const RPC_SEND_MESSAGE = 'lk.agent.send_message';\nexport const TOPIC_AGENT_REQUEST = 'lk.agent.request';\nexport const TOPIC_AGENT_RESPONSE = 'lk.agent.response';\nexport const TOPIC_SESSION_MESSAGES = 'lk.agent.session';\n"],"mappings":"AAGO,MAAM,mCAAmC;AACzC,MAAM,gCAAgC;AACtC,MAAM,sBAAsB;AAC5B,MAAM,qCAAqC;AAC3C,MAAM,8BAA8B;AACpC,MAAM,aAAa;AAEnB,MAAM,wBAAwB;AAC9B,MAAM,uBAAuB;AAI7B,MAAM,sBAAsB;AAC5B,MAAM,wBAAwB;AAC9B,MAAM,uBAAuB;AAC7B,MAAM,qBAAqB;AAC3B,MAAM,mBAAmB;AACzB,MAAM,sBAAsB;AAC5B,MAAM,uBAAuB;AAC7B,MAAM,yBAAyB;","names":[]}
|
package/dist/cpu.cjs
ADDED
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var cpu_exports = {};
|
|
30
|
+
__export(cpu_exports, {
|
|
31
|
+
CGroupV1CpuMonitor: () => CGroupV1CpuMonitor,
|
|
32
|
+
CGroupV2CpuMonitor: () => CGroupV2CpuMonitor,
|
|
33
|
+
DefaultCpuMonitor: () => DefaultCpuMonitor,
|
|
34
|
+
getCpuMonitor: () => getCpuMonitor
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(cpu_exports);
|
|
37
|
+
var import_node_fs = require("node:fs");
|
|
38
|
+
var import_node_os = __toESM(require("node:os"), 1);
|
|
39
|
+
function cpuCountFromEnv() {
|
|
40
|
+
const raw = process.env.NUM_CPUS;
|
|
41
|
+
if (raw === void 0) return void 0;
|
|
42
|
+
const parsed = parseFloat(raw);
|
|
43
|
+
if (Number.isNaN(parsed)) {
|
|
44
|
+
console.warn("Failed to parse NUM_CPUS from environment");
|
|
45
|
+
return void 0;
|
|
46
|
+
}
|
|
47
|
+
return parsed;
|
|
48
|
+
}
|
|
49
|
+
class DefaultCpuMonitor {
|
|
50
|
+
cpuCount() {
|
|
51
|
+
return cpuCountFromEnv() ?? (import_node_os.default.cpus().length || 1);
|
|
52
|
+
}
|
|
53
|
+
cpuPercent(intervalMs) {
|
|
54
|
+
return new Promise((resolve) => {
|
|
55
|
+
const cpus1 = import_node_os.default.cpus();
|
|
56
|
+
const timer = setTimeout(() => {
|
|
57
|
+
const cpus2 = import_node_os.default.cpus();
|
|
58
|
+
let idle = 0;
|
|
59
|
+
let total = 0;
|
|
60
|
+
for (let i = 0; i < cpus1.length; i++) {
|
|
61
|
+
const cpu1 = cpus1[i].times;
|
|
62
|
+
const cpu2 = cpus2[i].times;
|
|
63
|
+
idle += cpu2.idle - cpu1.idle;
|
|
64
|
+
const total1 = Object.values(cpu1).reduce((acc, v) => acc + v, 0);
|
|
65
|
+
const total2 = Object.values(cpu2).reduce((acc, v) => acc + v, 0);
|
|
66
|
+
total += total2 - total1;
|
|
67
|
+
}
|
|
68
|
+
resolve(total === 0 ? 0 : Math.max(Math.min(+(1 - idle / total).toFixed(2), 1), 0));
|
|
69
|
+
}, intervalMs);
|
|
70
|
+
timer.unref();
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
class CGroupV2CpuMonitor {
|
|
75
|
+
cpuCount() {
|
|
76
|
+
const envCpus = cpuCountFromEnv();
|
|
77
|
+
if (envCpus !== void 0) return envCpus;
|
|
78
|
+
const [quota, period] = this.#readCpuMax();
|
|
79
|
+
if (quota === "max") return import_node_os.default.cpus().length || 1;
|
|
80
|
+
return parseInt(quota) / period;
|
|
81
|
+
}
|
|
82
|
+
cpuPercent(intervalMs) {
|
|
83
|
+
return new Promise((resolve, reject) => {
|
|
84
|
+
const usageStart = this.#readCpuUsage();
|
|
85
|
+
const timer = setTimeout(() => {
|
|
86
|
+
try {
|
|
87
|
+
const usageEnd = this.#readCpuUsage();
|
|
88
|
+
const usageDiffUsec = usageEnd - usageStart;
|
|
89
|
+
const usageSeconds = usageDiffUsec / 1e6;
|
|
90
|
+
const numCpus = this.cpuCount();
|
|
91
|
+
const intervalSeconds = intervalMs / 1e3;
|
|
92
|
+
const percent = usageSeconds / (intervalSeconds * numCpus);
|
|
93
|
+
resolve(Math.max(Math.min(percent, 1), 0));
|
|
94
|
+
} catch (e) {
|
|
95
|
+
reject(e);
|
|
96
|
+
}
|
|
97
|
+
}, intervalMs);
|
|
98
|
+
timer.unref();
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
#readCpuMax() {
|
|
102
|
+
try {
|
|
103
|
+
const data = (0, import_node_fs.readFileSync)("/sys/fs/cgroup/cpu.max", "utf-8").trim().split(/\s+/);
|
|
104
|
+
const quota = data[0] ?? "max";
|
|
105
|
+
const period = data[1] ? parseInt(data[1]) : 1e5;
|
|
106
|
+
return [quota, Number.isNaN(period) ? 1e5 : period];
|
|
107
|
+
} catch {
|
|
108
|
+
return ["max", 1e5];
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
#readCpuUsage() {
|
|
112
|
+
const content = (0, import_node_fs.readFileSync)("/sys/fs/cgroup/cpu.stat", "utf-8");
|
|
113
|
+
for (const line of content.split("\n")) {
|
|
114
|
+
if (line.startsWith("usage_usec")) {
|
|
115
|
+
return parseInt(line.split(/\s+/)[1]);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
throw new Error("Failed to read CPU usage from /sys/fs/cgroup/cpu.stat");
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
class CGroupV1CpuMonitor {
|
|
122
|
+
cpuCount() {
|
|
123
|
+
const envCpus = cpuCountFromEnv();
|
|
124
|
+
if (envCpus !== void 0) return envCpus;
|
|
125
|
+
const [quota, period] = this.#readCfsQuotaAndPeriod();
|
|
126
|
+
if (quota === null || quota < 0 || period === null || period <= 0) {
|
|
127
|
+
return 2;
|
|
128
|
+
}
|
|
129
|
+
return Math.max(quota / period, 1);
|
|
130
|
+
}
|
|
131
|
+
cpuPercent(intervalMs) {
|
|
132
|
+
return new Promise((resolve, reject) => {
|
|
133
|
+
const usageStart = this.#readCpuacctUsage();
|
|
134
|
+
const timer = setTimeout(() => {
|
|
135
|
+
try {
|
|
136
|
+
const usageEnd = this.#readCpuacctUsage();
|
|
137
|
+
const usageDiffNs = usageEnd - usageStart;
|
|
138
|
+
const usageSeconds = usageDiffNs / 1e9;
|
|
139
|
+
const numCpus = this.cpuCount();
|
|
140
|
+
const intervalSeconds = intervalMs / 1e3;
|
|
141
|
+
const percent = usageSeconds / (intervalSeconds * numCpus);
|
|
142
|
+
resolve(Math.max(Math.min(percent, 1), 0));
|
|
143
|
+
} catch (e) {
|
|
144
|
+
reject(e);
|
|
145
|
+
}
|
|
146
|
+
}, intervalMs);
|
|
147
|
+
timer.unref();
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
#readCfsQuotaAndPeriod() {
|
|
151
|
+
const quota = readFirstInt("/sys/fs/cgroup/cpu/cpu.cfs_quota_us");
|
|
152
|
+
const period = readFirstInt("/sys/fs/cgroup/cpu/cpu.cfs_period_us");
|
|
153
|
+
return [quota, period];
|
|
154
|
+
}
|
|
155
|
+
#readCpuacctUsage() {
|
|
156
|
+
const value = readFirstInt("/sys/fs/cgroup/cpuacct/cpuacct.usage");
|
|
157
|
+
if (value === null) {
|
|
158
|
+
throw new Error("Failed to read cpuacct.usage for cgroup v1");
|
|
159
|
+
}
|
|
160
|
+
return value;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
function readFirstInt(path) {
|
|
164
|
+
try {
|
|
165
|
+
const val = parseInt((0, import_node_fs.readFileSync)(path, "utf-8").trim());
|
|
166
|
+
return Number.isNaN(val) ? null : val;
|
|
167
|
+
} catch {
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
function isCGroupV2() {
|
|
172
|
+
return (0, import_node_fs.existsSync)("/sys/fs/cgroup/cpu.stat");
|
|
173
|
+
}
|
|
174
|
+
function isCGroupV1() {
|
|
175
|
+
return (0, import_node_fs.existsSync)("/sys/fs/cgroup/cpuacct/cpuacct.usage");
|
|
176
|
+
}
|
|
177
|
+
function getCpuMonitor() {
|
|
178
|
+
if (isCGroupV2()) return new CGroupV2CpuMonitor();
|
|
179
|
+
if (isCGroupV1()) return new CGroupV1CpuMonitor();
|
|
180
|
+
return new DefaultCpuMonitor();
|
|
181
|
+
}
|
|
182
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
183
|
+
0 && (module.exports = {
|
|
184
|
+
CGroupV1CpuMonitor,
|
|
185
|
+
CGroupV2CpuMonitor,
|
|
186
|
+
DefaultCpuMonitor,
|
|
187
|
+
getCpuMonitor
|
|
188
|
+
});
|
|
189
|
+
//# sourceMappingURL=cpu.cjs.map
|
package/dist/cpu.cjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cpu.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2025 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport { existsSync, readFileSync } from 'node:fs';\nimport os from 'node:os';\n\n/** @internal */\nexport interface CpuMonitor {\n cpuCount(): number;\n cpuPercent(intervalMs: number): Promise<number>;\n}\n\nfunction cpuCountFromEnv(): number | undefined {\n const raw = process.env.NUM_CPUS;\n if (raw === undefined) return undefined;\n const parsed = parseFloat(raw);\n if (Number.isNaN(parsed)) {\n console.warn('Failed to parse NUM_CPUS from environment');\n return undefined;\n }\n return parsed;\n}\n\n/** @internal */\nexport class DefaultCpuMonitor implements CpuMonitor {\n cpuCount(): number {\n return cpuCountFromEnv() ?? (os.cpus().length || 1);\n }\n\n cpuPercent(intervalMs: number): Promise<number> {\n return new Promise((resolve) => {\n const cpus1 = os.cpus();\n const timer = setTimeout(() => {\n const cpus2 = os.cpus();\n let idle = 0;\n let total = 0;\n for (let i = 0; i < cpus1.length; i++) {\n const cpu1 = cpus1[i]!.times;\n const cpu2 = cpus2[i]!.times;\n idle += cpu2.idle - cpu1.idle;\n const total1 = Object.values(cpu1).reduce((acc, v) => acc + v, 0);\n const total2 = Object.values(cpu2).reduce((acc, v) => acc + v, 0);\n total += total2 - total1;\n }\n resolve(total === 0 ? 0 : Math.max(Math.min(+(1 - idle / total).toFixed(2), 1), 0));\n }, intervalMs);\n timer.unref();\n });\n }\n}\n\n/** @internal */\nexport class CGroupV2CpuMonitor implements CpuMonitor {\n cpuCount(): number {\n const envCpus = cpuCountFromEnv();\n if (envCpus !== undefined) return envCpus;\n const [quota, period] = this.#readCpuMax();\n if (quota === 'max') return os.cpus().length || 1;\n return parseInt(quota) / period;\n }\n\n cpuPercent(intervalMs: number): Promise<number> {\n return new Promise((resolve, reject) => {\n const usageStart = this.#readCpuUsage();\n const timer = setTimeout(() => {\n try {\n const usageEnd = this.#readCpuUsage();\n const usageDiffUsec = usageEnd - usageStart;\n const usageSeconds = usageDiffUsec / 1_000_000;\n const numCpus = this.cpuCount();\n const intervalSeconds = intervalMs / 1000;\n const percent = usageSeconds / (intervalSeconds * numCpus);\n resolve(Math.max(Math.min(percent, 1), 0));\n } catch (e) {\n reject(e);\n }\n }, intervalMs);\n timer.unref();\n });\n }\n\n #readCpuMax(): [string, number] {\n try {\n const data = readFileSync('/sys/fs/cgroup/cpu.max', 'utf-8').trim().split(/\\s+/);\n const quota = data[0] ?? 'max';\n const period = data[1] ? parseInt(data[1]) : 100_000;\n return [quota, Number.isNaN(period) ? 100_000 : period];\n } catch {\n return ['max', 100_000];\n }\n }\n\n #readCpuUsage(): number {\n const content = readFileSync('/sys/fs/cgroup/cpu.stat', 'utf-8');\n for (const line of content.split('\\n')) {\n if (line.startsWith('usage_usec')) {\n return parseInt(line.split(/\\s+/)[1]!);\n }\n }\n throw new Error('Failed to read CPU usage from /sys/fs/cgroup/cpu.stat');\n }\n}\n\n/** @internal */\nexport class CGroupV1CpuMonitor implements CpuMonitor {\n cpuCount(): number {\n const envCpus = cpuCountFromEnv();\n if (envCpus !== undefined) return envCpus;\n const [quota, period] = this.#readCfsQuotaAndPeriod();\n if (quota === null || quota < 0 || period === null || period <= 0) {\n // do not use the host CPU count as it could overstate the number available to the container\n return 2.0;\n }\n return Math.max(quota / period, 1.0);\n }\n\n cpuPercent(intervalMs: number): Promise<number> {\n return new Promise((resolve, reject) => {\n const usageStart = this.#readCpuacctUsage();\n const timer = setTimeout(() => {\n try {\n const usageEnd = this.#readCpuacctUsage();\n const usageDiffNs = usageEnd - usageStart;\n const usageSeconds = usageDiffNs / 1_000_000_000;\n const numCpus = this.cpuCount();\n const intervalSeconds = intervalMs / 1000;\n const percent = usageSeconds / (intervalSeconds * numCpus);\n resolve(Math.max(Math.min(percent, 1.0), 0.0));\n } catch (e) {\n reject(e);\n }\n }, intervalMs);\n timer.unref();\n });\n }\n\n #readCfsQuotaAndPeriod(): [number | null, number | null] {\n const quota = readFirstInt('/sys/fs/cgroup/cpu/cpu.cfs_quota_us');\n const period = readFirstInt('/sys/fs/cgroup/cpu/cpu.cfs_period_us');\n return [quota, period];\n }\n\n #readCpuacctUsage(): number {\n const value = readFirstInt('/sys/fs/cgroup/cpuacct/cpuacct.usage');\n if (value === null) {\n throw new Error('Failed to read cpuacct.usage for cgroup v1');\n }\n return value;\n }\n}\n\nfunction readFirstInt(path: string): number | null {\n try {\n const val = parseInt(readFileSync(path, 'utf-8').trim());\n return Number.isNaN(val) ? null : val;\n } catch {\n return null;\n }\n}\n\nfunction isCGroupV2(): boolean {\n return existsSync('/sys/fs/cgroup/cpu.stat');\n}\n\nfunction isCGroupV1(): boolean {\n return existsSync('/sys/fs/cgroup/cpuacct/cpuacct.usage');\n}\n\nexport function getCpuMonitor(): CpuMonitor {\n if (isCGroupV2()) return new CGroupV2CpuMonitor();\n if (isCGroupV1()) return new CGroupV1CpuMonitor();\n return new DefaultCpuMonitor();\n}\n"],"mappings":"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","names":["os"]}
|
package/dist/cpu.d.cts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** @internal */
|
|
2
|
+
export interface CpuMonitor {
|
|
3
|
+
cpuCount(): number;
|
|
4
|
+
cpuPercent(intervalMs: number): Promise<number>;
|
|
5
|
+
}
|
|
6
|
+
/** @internal */
|
|
7
|
+
export declare class DefaultCpuMonitor implements CpuMonitor {
|
|
8
|
+
cpuCount(): number;
|
|
9
|
+
cpuPercent(intervalMs: number): Promise<number>;
|
|
10
|
+
}
|
|
11
|
+
/** @internal */
|
|
12
|
+
export declare class CGroupV2CpuMonitor implements CpuMonitor {
|
|
13
|
+
#private;
|
|
14
|
+
cpuCount(): number;
|
|
15
|
+
cpuPercent(intervalMs: number): Promise<number>;
|
|
16
|
+
}
|
|
17
|
+
/** @internal */
|
|
18
|
+
export declare class CGroupV1CpuMonitor implements CpuMonitor {
|
|
19
|
+
#private;
|
|
20
|
+
cpuCount(): number;
|
|
21
|
+
cpuPercent(intervalMs: number): Promise<number>;
|
|
22
|
+
}
|
|
23
|
+
export declare function getCpuMonitor(): CpuMonitor;
|
|
24
|
+
//# sourceMappingURL=cpu.d.ts.map
|
package/dist/cpu.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** @internal */
|
|
2
|
+
export interface CpuMonitor {
|
|
3
|
+
cpuCount(): number;
|
|
4
|
+
cpuPercent(intervalMs: number): Promise<number>;
|
|
5
|
+
}
|
|
6
|
+
/** @internal */
|
|
7
|
+
export declare class DefaultCpuMonitor implements CpuMonitor {
|
|
8
|
+
cpuCount(): number;
|
|
9
|
+
cpuPercent(intervalMs: number): Promise<number>;
|
|
10
|
+
}
|
|
11
|
+
/** @internal */
|
|
12
|
+
export declare class CGroupV2CpuMonitor implements CpuMonitor {
|
|
13
|
+
#private;
|
|
14
|
+
cpuCount(): number;
|
|
15
|
+
cpuPercent(intervalMs: number): Promise<number>;
|
|
16
|
+
}
|
|
17
|
+
/** @internal */
|
|
18
|
+
export declare class CGroupV1CpuMonitor implements CpuMonitor {
|
|
19
|
+
#private;
|
|
20
|
+
cpuCount(): number;
|
|
21
|
+
cpuPercent(intervalMs: number): Promise<number>;
|
|
22
|
+
}
|
|
23
|
+
export declare function getCpuMonitor(): CpuMonitor;
|
|
24
|
+
//# sourceMappingURL=cpu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cpu.d.ts","sourceRoot":"","sources":["../src/cpu.ts"],"names":[],"mappings":"AAMA,gBAAgB;AAChB,MAAM,WAAW,UAAU;IACzB,QAAQ,IAAI,MAAM,CAAC;IACnB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACjD;AAaD,gBAAgB;AAChB,qBAAa,iBAAkB,YAAW,UAAU;IAClD,QAAQ,IAAI,MAAM;IAIlB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAoBhD;AAED,gBAAgB;AAChB,qBAAa,kBAAmB,YAAW,UAAU;;IACnD,QAAQ,IAAI,MAAM;IAQlB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAwChD;AAED,gBAAgB;AAChB,qBAAa,kBAAmB,YAAW,UAAU;;IACnD,QAAQ,IAAI,MAAM;IAWlB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAiChD;AAmBD,wBAAgB,aAAa,IAAI,UAAU,CAI1C"}
|